【发布时间】:2011-04-25 09:50:08
【问题描述】:
我编写了一个小脚本来计算来自日志文件的访问次数。
for($j=0; $j < $max; $j++)
{
$tempyear = date('Y', $timestamp[$j]);
$tempday = date('z', $timestamp[$j]);
for($i=$fromdate; $i <= $todate; $i++)
{
if ($tempyear === $yeartoday) {
if ($tempday == $i) {$dayaccesses[$i] = $dayaccesses[$i]+1;}}
}
}
我注意到由于 UNIX 时间戳的转换,执行速度非常慢。
例如,如果我以纯文本格式保存年份和日期,则脚本的执行速度会快得多...
对于 12.000 个条目 [以秒为单位(不是前面所说的微秒)]
纯文本日期:0,14
时间戳转换:0,58
那么有没有(希望是简单的)方法来加快时间戳转换?
【问题讨论】:
-
一个人的“慢”是另一个人的“如此之快,除非你尝试,否则你永远不会注意到它”...跨度>
-
无论如何,就微优化而言,您可以使用跳过时区转换的
gmdate()。或者,如果您真的对此很着迷,请计算大约。约会自己$t_year = 1970 + time() / (60*60*24*30*12)等等... -
尽管这是微优化,@mario 的评论让我想起了一个与
date()相关的性能问题,它确实显示了一些加速潜力:stackoverflow.com/questions/5556789 你可以尝试将时区设置为你的代码如图所示。
标签: php performance