求一百万以内素数GO语言和PHP语言的性能测试
go语言代码
package main
import "fmt"
import "time"
func main() {
start := time.Now().UnixNano() / 1e6
/* 定义局部变量 */
var i, j int
for i=2; i < 1000000; i++ {
for j=2; j <= (i/j); j++ { if(i%j==0) { break; // 如果发现因子,则不是素数 } } if(j > (i/j)) {
//fmt.Printf("%d 是素数\n", i);
}
}
end := time.Now().UnixNano() / 1e6
times := end - start;
fmt.Printf("这个脚本执行的时间为 %d microseconds \n", times);
}
执行时间
这个脚本执行的时间为 661 microseconds
这个脚本执行的时间为 678 microseconds
这个脚本执行的时间为 683 microseconds
PHP语言代码
<?php
$time_start = microtime(true);
for ($i=2; $i < 1000000; $i++) {
for ($j=2; $j <= ($i/$j); $j++) {
if($i%$j==0) {
break; // 如果发现因子,则不是素数
}
}
if($j > ($i/$j)) {
//sprintf("%d 是素数\n", $i);
//echo "$i 是素数\n";
}
}
$time_end = microtime(true);
//相减得到运行时间
$time = ($time_end - $time_start)*1000;
echo "这个脚本执行的时间为 $time microseconds\n";
执行时间
这个脚本执行的时间为 3556.6558837891 microseconds
这个脚本执行的时间为 3535.5389118195 microseconds
这个脚本执行的时间为 3535.5389118195 microseconds
在没做任何优化和加速的情况下,从数据看PHP的执行效率要远低于GO。