Ale*_*Mcp 1 php optimization performance
是否有一个表格,表明在PHP中执行给定函数需要多少"工作"?我不是一个compsci专业,所以我可能没有正式的背景知道"哦是的,字符串需要更长的时间来工作而不是整数"或类似的东西.程序中的所有步骤/行都是相同的吗?我甚至不知道从哪里开始研究这个.
我目前正在做一些项目Euler问题,我非常确定我的答案是可行的,但是我在一分钟内按照我的要求计时我的本地Apache服务器(并且PE已经说过所有问题都可以解决<1分钟).我不知道如何/从哪里开始优化,因此了解更多关于PHP及其如何使用内存将是有用的.对于它的价值,这是我的问题206的代码:
<?php
$start = time();
for ($i=1010374999; $i < 1421374999; $i++) {
$a = number_format(pow($i,2),0,".","");
$c = preg_split('//', $a, -1, PREG_SPLIT_NO_EMPTY);
if ($c[0]==1) {
if ($c[2]==2) {
if ($c[4]==3) {
if ($c[6]==4) {
if ($c[8]==5) {
if ($c[10]==6) {
if ($c[12]==7) {
if ($c[14]==8) {
if ($c[16]==9) {
if ($c[18]==0) {
echo $i;
}
}
}
}
}
}
}
}
}
}
}
$end = time();
$elapsed = ($end-$start);
echo "<br />The time to calculate was $elapsed seconds";
?>
Run Code Online (Sandbox Code Playgroud)
如果这是关于优化的维基问题,请告诉我,我会移动它.再一次,不寻找答案,只是帮助我在哪里学习如何有效地编写代码(虽然粗略的提示不会被拒绝,我意识到可能有更优雅的数学方法来设置问题)
没有这样的表可以告诉你每个PHP函数执行多长时间,因为执行的时间会根据输入而有很大差异.
看看你的代码在做什么.你已经创建了一个将运行411,000,000次的循环.鉴于代码需要在不到60秒(一分钟)内完成,为了解决问题,您假设每次循环中的行程将花费少于(大约).000000145秒.这是不合理的,没有多少使用"正确"功能将解决您的电话.在那里没有任何东西尝试你的循环
for ($i=1010374999; $i < 1421374999; $i++) {
}
Run Code Online (Sandbox Code Playgroud)
除非您可以访问科幻小说计算机,否则这可能不会在60秒内完成执行.所以你知道这种方法永远不会奏效.
这是一个解决问题的强力解决方案.Project Euler的目的是让你从数学和编程的角度创造性地思考问题.您希望减少通过该循环所需的行程次数.显而易见的解决方案永远不会成为答案.
我不想告诉你解决方案,因为这些事情的重点是通过它来思考并成为一个更好的算法程序员.检查问题,考虑它的限制,并考虑减少需要检查的数字总数的方法.