我正在调试我的ajax应用程序的性能问题。
Firefox开发人员工具显示等待时间约为3秒。
如果我尝试通过getrusage()'ru_utime.tv_sec'和'ru_utime.tv_usec'来测量php脚本,我会在脚本开始时随机地获得0.2到9秒,并且脚本开始和结束之间的差异大约是0.07秒。
那么我该如何解释这些结果呢? 这是否意味着PHP代码本身运行0.07秒,剩余时间是sql查询等? (我的脚本中确实有很多复杂的查询)
或者是否意味着apache或php解释器在执行实际的PHP代码之前会做些什么?
或者它可能不是服务器故障,但是ajax是一个jquery?
的Debian。 php版本是5.4,apache - 2.2,jquery 1.11。
UPD: 对不起,我忘了提到重要信息 - 我从页面运行多个ajax请求。如果我单独运行一个请求,等待时间是0.6秒。
答案 0 :(得分:1)
您使用的是localhost吗?如果是这样的话机会会慢一点。升级到PHP 7,如果它可以提高速度。 Apache,如果你想要更好的性能,请切换到nginx。 Apache就像一个4乘4,包含你需要的一切,nginx更像是法拉利,没有那么多,但它做你需要它。
虽然没关系,但jQuery现在是版本3,你运行的是旧版本。
答案 1 :(得分:0)
因此,getrusage()仅测量PHP代码执行本身的时间。 如果我想测量查询流等,我需要测量实时。
$GLOBALS["mymicrotime"] = microtime(true);
//code here
print_r(microtime(true) - $GLOBALS["mymicrotime"]);
并行脚本运行3秒而不是0.6秒,因为在Interbase / Firebird查询中存在某种锁定。