是否有表格顯示在PHP中執行給定函數需要多少「工作量」?我不是一個綜合專業,所以我也許沒有正式的背景知道「哦,是的,字符串需要更長的時間來處理,而不是整數」或類似的東西。程序中的所有步驟/行是否都是平等的?我甚至不知道從哪裏開始研究。PHP函數效率
我目前正在做一些項目歐拉問題,我很確定我的答案會起作用,但是我在一分鐘內根據我的請求計時了我的本地Apache服務器(並且PE已經表示所有問題都可以解決< 1分鐘)。我不知道如何/從哪裏開始優化,所以瞭解更多關於PHP以及它如何使用內存將是有用的。對於它的價值,這是我爲question 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";
?>
如果這是關於優化維基問題,只是讓我知道,我會移動。再次,沒有尋找答案,只是幫助我瞭解在編碼方面的高效性(儘管粗略的提示不會被拒絕,並且我意識到可能有更優雅的數學方法來設置問題)
您最大的效率問題可能是您嘗試暴力解決方案的事實。對於這些問題,沒有任何代碼可以使暴力解決方案發揮作用。沒有太多的循環,你可以在一分鐘內完成4.11億次。而不是試圖每秒鐘擠壓更多的迭代,試着將你所做的迭代次數減少幾個數量級。 – 2009-06-28 22:34:56
對於這個問題,你應該看看方形數字是如何工作的。例如mathworld.wolfram.com/SquareNumber.html。然後你會注意到,平方根的最後兩位數字只能是30或70,這已經將你的搜索空間從4.11億個數字減少到了8.220.000 – jitter 2009-06-28 23:19:42