2021年7月14日水曜日

golangでの文字列連結問題(有名な大問題らしい)

これだと、ループ回数多いときに10分かかっても終わらなかった
for i:=0;i<1000;i++{
str += "&#13"
}
return str

これだと、0.1秒かからねぇ
buf := make([]byte, 0)
for i:=0;i<1000;i++{
buf = append(buf, "&#13;"...)
}
return string(buf)
最初のは、strがいちいちメモリ確保、コピー、解放され、あまつさえガベージコレクションも動くようだ。
下のは、実はあれこれ試してみて一番早かった。
byte配列作って、Appendしていくのは早いみたいなんだよなぁ
よくわかんねぇよ
いいね!
コメントする
シェア

0 件のコメント: