首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

InetAddress.getLocalHost() 执行很慢

再次启动 SpringBoot 程序,我们发现警告信息消失了,也就意味着主机信息获取的耗时不会超过200ms。那么问题来了,这背后究竟是什么机制,让我们一探究竟。...那么,这段获取主机信息的程序究竟是怎么运作的呢,hosts文件中没有添加主机名时,时间都耗在了哪里?...Arthas 工具的 trace 命令看看链路耗时:提示:如果抓包时出现 No class or method is affected 的报错,可查看对应的日志文件进行排查,见下图:图片可知需要提升下权限,执行命令...目前,我们知道了方法 getaddrinfo 会被调用,因此简单写段 c 程序复现一下:#include#include #include <string.h...这里有几个地方需要注意: 即使 hosts 文件中添加主机名,标准 Linux 的 getaddrinfo 方法执行时,也会有接近两秒的耗时,但我们在 Java 代码中运行时却只有几十毫秒; 前文我们使用

4.3K40
您找到你想要的搜索结果了吗?
是的
没有找到

PHP实现执行外部程序的方法详解

本文实例讲述了PHP实现执行外部程序的方法。...分享给大家供大家参考,具体如下: 在一些特殊情况下,会使用PHP调用外部程序执行,比如:调用shell命令、shell脚本、可执行程序等等,今天在源码中了解了一下PHP执行外部程序的方法,借此机会顺便整理一下...注意:执行外部程序是存在风险的,所以使用这些函数要在确保安全的情况下使用。...② 如果想通过exec调用外部程序后马上继续执行后续代码,仅仅在命令里加"&"是不够的,此时exec依然会等待命令执行完毕;需要再将标准输出做重定向才可以,例如:exec("ls -al >/dev/null...② proc_open打开的程序作为php的子进程,php退出后该子进程也会退出。

89330

php命令执行

一、命令执行相关知识 0x01. 什么是命令执行 :让php文件去执行cmd命令. 在命令行中使用echo “” > 1.php: 写一句话木马到1.php文件..... php哪些函数可以做到命令执行: 1.system(‘whoami’): php操纵计算机执行whoami命令,并且输出结果,可以看到多行 2.echo exec(‘whoami’): php操纵计算机执行命令之后获取最后一行结果...,需要配合echo使用 3.echo shell_exec(‘whoami’): php操纵计算机执行命令之后,获取所有结果,但是不会自动输出,需要配合echo使用 4.passthru: 只调用命令...substr()函数 通过获取环境变量,对环境变量进行字符切割获得.然后拼接执行 echo %PATHEXT:~0,1%成功输出1.php 二、靶场-本地测试 靶场采用的是ibos4.5.5版本,...这时候可以拼接恶意语句,利用命令执行函数去生成一个带有一句话木马的php文件 构造语句:filename=xxbaqwe&echo "<?php eval($_REQUEST[1])?

6.6K30

php异步执行

开发中遇到了群发邮件慢的问题,找到了以下方法,还不错分享下: PHP异步执行的常用方式常见的有以下几种,可以根据各自优缺点进行选择: 1.客户端页面采用AJAX技术请求服务器 优点:最简单,也最快,就是在返回给客户端的...HTML代码中,嵌入AJAX调用,或者,嵌入一个img标签,src指向要执行的耗时脚本。...而使用img标签的话,这种方式不能称为严格意义上的异步执行。用户浏览器会长时间等待php脚本的执行完成,也就是用户浏览器的状态栏一直显示还在load。...2.popen()函数 该函数打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。...4.fscokopen()函数 fsockopen支持socket编程,可以使用fsockopen实现邮件发送等socket程序等等,使用fcockopen需要自己手动拼接出header部分 可以参考:

3.2K120

一条SQL语句执行很慢的原因盘点

开始装逼:分类讨论 一条 SQL 语句执行很慢,那是每次执行很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论。...1、大多数情况是正常的,只是偶尔会出现很慢的情况。 2、在数据量不变的情况下,这条SQL语句一直以来都执行很慢。 针对这两种情况,我们来分析下可能是哪些原因导致的。...,所以说,数据库在在同步数据到磁盘的时候,就有可能导致我们的SQL语句执行很慢了。...一个 SQL 执行很慢,我们要分两种情况讨论: 1、大多数情况下很正常,偶尔很慢,则有如下原因 (1)、数据库在刷新脏页,例如 redo log 写满了需要同步到磁盘。...(2)、执行的时候,遇到锁,如表锁、行锁。 2、这条 SQL 语句一直执行很慢,则有如下原因。 (1)、没有用上索引:例如该字段没有索引;由于对字段进行运算、函数操作导致无法用索引。

80010

同事问我,SQL 语句明明命中了索引,为什么执行很慢

id`), key `idx_user_name` (user_name), ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'; 启动程序...3、开始实验 首先看下以下几种场景的SQL语句执行时,索引的命中情况。...4、命中索引,依然很慢 我们知道所有的数据都是存储在 B+ 索引树上,当执行 explain select * from user where id>0; 时,发现使用了主键索引。 ?...这个过程也称为回表 ③ 然后,在 idx_user_name_age 联合索引树上向右遍历,找到下一个主键id ④ 再执行第二步 ⑤ 后面重复执行第三步、第四步,直到user_name不是以 Tom哥-...简单来讲,慢查询和索引没有必然联系,一个SQL语句的执行效率最终要看的是扫描行数。另外可以使用虚拟列和联合索引来提升复杂查询的执行效率。

2.2K30

php-fpm重启导致的程序执行中断问题详解

error log 里却查不到任何mongo异常日志 写mongo没有异常,但是库里却没记录,推断只有2个可能 1是error log 丢日志了 2是程序执行过程中操作完sendPresent后down...总结原因 业务请求时执行完 sendPresent这个动作后 , 还没来得及写mongo库, php-fpm就刚好被 terminate 了,…....刚好赶上了 替代方案 虽然php-fpm 没有解释 terminate 跟 graceful stop 的具体含义, 但猜的话前者是直接就终止程序执行了,后者可能是温柔点,把处理中的请求里的所有操作都执行完再杀死...突然terminate了,然后发了个RST分节给nginx;背后就表示当前请求可能只执行了一半动作,还有动作没执行完,这可能就造成丢数据了。。。...改成 SIGQUIT 信号nginx里还是有 104: Connection reset by peer, 看来手册里说SIGQUIT: graceful stop 也不能保证一次请求里的所有动作都执行完啊

1.4K30

PHP的脚本执行

PHP的脚本执行PHP的脚本执行还是会经过编译环节, 只不过它们一般会在运行的时候实时进行编译 1.启动PHP及Zend引擎, 加载注册的扩展模块 2.读取脚本文件,Zend引擎对脚本文件进行词法分析...3.编译成opcode执行 4.如果安装opcode缓存扩展(如APC, xcache, eAccelerator等),可能直接从缓存中读取opcode执行 脚本的编译执行: 1.读取脚本,通过lex按照词法规则切分一个一个的标记...3.Zend引擎将代码编译为opcode 4.PHP是构建在Zend虚拟机(Zend VM)之上的。PHP的opcode就是Zend虚拟机中的指令。...编程语言的编译器(compiler)或解释器(interpreter)一般包括两大部分: 1.读取源程序,并处理语言结构。 2.处理语言结构并生成目标程序

1.7K30

腾讯面试:一条SQL语句执行很慢的原因有哪些?

一、开始装逼:分类讨论 一条 SQL 语句执行很慢,那是每次执行很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论。...1、大多数情况是正常的,只是偶尔会出现很慢的情况。 2、在数据量不变的情况下,这条SQL语句一直以来都执行很慢。 针对这两种情况,我们来分析下可能是哪些原因导致的。...,所以说,数据库在在同步数据到磁盘的时候,就有可能导致我们的SQL语句执行很慢了。...一个 SQL 执行很慢,我们要分两种情况讨论: 1、大多数情况下很正常,偶尔很慢,则有如下原因 (1)、数据库在刷新脏页,例如 redo log 写满了需要同步到磁盘。...(2)、执行的时候,遇到锁,如表锁、行锁。 2、这条 SQL 语句一直执行很慢,则有如下原因。 (1)、没有用上索引:例如该字段没有索引;由于对字段进行运算、函数操作导致无法用索引。

38110

云应用程序很慢?原因在应用,而不是云

确实,供应商是应用程序和数据的宿主,因此它必须承担所有的性能问题,是吗?不。 笔者在访谈调查中发现,性能问题的诱因,十之八九是来自于应用程序设计和支持技术的选择,而不是云基础设施的问题。...我们可以这样理解: 把糟糕的应用程序转移到云上,也只是变成了一个糟糕的云应用程序而已。 目前的情况是,很多企业把应用程序推向公有云之前,并不会关注应用程序设计,或者使用数据库、中间件或其他使能技术。...因为公有云会耗费很多资源去处理一个设计不当的应用程序。常见的问题是低效的I/O,闲谈式应用程序,和数据库的非优化查询——而这些问题只是几十个会出现的错误中的一部分。...解决问题的办法是在IT企业中大多数人都不想听到的:应用程序需要重构。...包括对设计进行调整,并使应用程序的某些部分利用云本地特性,如原生I/O、数据库缓存和一系列的其他技巧,以使应用程序在云或其他任何平台中运行良好。

78350

PHP定时执行任务

PHP定时执行任务有两种方式: 一、Linux 服务器 Linux原生支持crontab,所以可以利用这一功能做定时任务 步骤: 1、编辑crontab文件: Linux:crontab -e 2、输入代码...http://www.website.com/Index/test方法  第二项代表curl所在目录,  第三项代表所要执行的url  (若要执行PHP文件,与此格式类似,具体百度之。。)...esc :wq 保存 二、Windows服务器: Windows服务器可以利用系统的计划任务实现 步骤: 1、创建一个bat批处理文件,如: D:\xampp\php\php.exe -q D:\xampp...\htdocs\test.php 保存为test.bat,第一项为php.exe所在目录,第二项为需要执行php文件路径 2、test.php文件写入: 此仅为测试用,具体代码可自行编写(本例是只要执行test.bat,就调用test.php,往test.txt里面写入一段字符串) 3、设置系统计划任务,定时执行test.bat O(∩_∩)O哈哈~

1.9K00

PHP命令执行学习总结

前言 最近学习了PHP命令执行,内容比较多,把自己学到的总结下来,加深理解,水平有限,欢迎大佬斧正。 什么是PHP命令注入攻击?...Command Injection,即命令注入攻击,是指由于Web应用程序对用户提交的数据过滤不严格,导致黑客可以通过构造特殊命令字符串的方式,将数据提交至Web应用程序中,并利用该方式执行外部程序或系统命令实施攻击...PHP命令注入攻击存在的主要原因是Web应用程序员在应用PHP语言中一些具有命令执行功能的函数时,对用户提交的数据内容没有进行严格的过滤就带入函数中执行而造成的。...> eval注入攻击利用 除了上面的一些函数,还有eval函数,eval函数的作用是将字符串当作php代码执行,这个函数相当的危险,因为它允许执行任意 PHP 代码,看到eval的第一眼是不是很熟悉?...我们发现我们提交的字符串“phpinfo();”经过eval函数的处理后,可以按照PHP函数进行执行,并将结果反馈给我们,那么执行相应的其他PHP函数,如写入文件,查询文件信息等功能的代码字符串时,同样可以执行

1K20
领券