做了一个简单的测试,发现大量临时对象时golang的性能比python低148倍,不知道是否有误解的地方?请教一下大家
Python测试代码:
pygc.py
import time
very_long_string = ""
start = time.time()
for i in range(100000):
very_long_string += "test" + " and test "#这个地方的缩进怎么没有了
end = time.time()
print(end - start, len(very_long_string))
输出:
(0.09200000762939453, 1400000)
golang测试代码:
// gogc project gogc.go
package main
import (
"fmt"
"time"
)
func main() {
var very_long_string string
start := time.Now()
for i := 0; i < 100000; i++ {
very_long_string += "test " + "and test "
}
end := time.Now()
delta := end.Sub(start)
fmt.Println(delta, len(very_long_string))
}
输出:
13.6497808s 1400000
0.092秒 vs 13.649秒
13649/92=148
Python性能高148倍
Python 版本为2.7.12
golang 版本为1.7.1, 编译成amd64的exe