我在Go上发现String的“+”操作非常缓慢:
func main() {
start := time.Now();
s := ""
for i:=0;i<100000;i++ {
s += "test"
}
end := time.Now();
fmt.Println(end.Sub(start)) //Output 6.495225211s
}
但是Python:
start = datetime.now()
s = ""
for i in range(100000):
s += 'test'
end = datetime.now()
print(end - start) # Output 0:00:00.020291
我知道如何优化Go代码。 我希望你能告诉我原因。
感谢。
我在Python上发现了一件有趣的事情:
s = ""
for i in range(20):
s += 'test'
print(id(s))
输出是:
139842066321960
139842066396912
139842066396912
139842066400072
139842066400072
139842067023232
139842067023232
139842066384304
139842066384304
139842066312528