原始代码(未优化): `package main
import (
"fmt"
"time"
)
func main() {
start := time.Now()
for i := 0; i < 1000000; i++ {
fmt.Println("Hello, World!")
}
end := time.Now()
elapsed := end.Sub(start)
fmt.Println("Elapsed time:", elapsed)
}`
这个程序简单地打印了100万次"Hello, World!",并计算了运行时间。
优化代码: `package main
import (
"fmt"
"time"
)
func main() {
start := time.Now()
buffer := make([]byte, 0, 1000000)
for i := 0; i < 1000000; i++ {
buffer = append(buffer[:0], "Hello, World!\n"...)
}
end := time.Now()
elapsed := end.Sub(start)
fmt.Println("Elapsed time:", elapsed)
}`
优化后的程序使用了缓冲区(buffer)来减少字符串的重复拼接,从而减少了内存分配和字符串复制的开销。通过将字符串预定义为一个较大的缓冲区,可以避免在每次循环中分配新的内存空间,从而减少了内存占用和提高运行效率。
通过这样的优化,我们可以减少不必要的内存分配和字符串拼接操作,从而提高程序的性能并减少资源占用。