2025-03-02

anond:20250220134419

BigList<T>の内部で使われているやつをGapBuffer<T>に置き換えてみたら、リーフノードサイズが32768だと遅くなるけど、最大メモリー使用量はそこまで変わらんな。

ブロックサイズ:32768

benchmark start

Allocated GC Memory:60,232bytes

add time:787 ms

Allocated GC Memory:199,389,088bytes

replace 1 time:4064 ms

Allocated GC Memory:199,404,752bytes

replace 2 time:6023 ms

Allocated GC Memory:368,390,176bytes

replace 3 time:4133 ms

Allocated GC Memory:368,390,176bytes

enumratotion time:557 ms

Allocated GC Memory:368,390,320bytes

clear buffer

Allocated GC Memory:83,992bytes

ブロックサイズ:392

benchmark start

Allocated GC Memory:60,232bytes

add time:1173 ms

Allocated GC Memory:332,559,240bytes

replace 1 time:4882 ms

Allocated GC Memory:332,583,016bytes

replace 2 time:4928 ms

Allocated GC Memory:369,076,056bytes

replace 3 time:4683 ms

Allocated GC Memory:369,076,056bytes

enumratotion time:565 ms

Allocated GC Memory:369,076,200bytes

clear buffer

Allocated GC Memory:83,992bytes

ただ、ブロックサイズを32768にしても、最大で1.2倍程度しか遅くならず、文字数が変わらないなら、2割程度早くなるので、ブロックサイズをある程度大きくした方がいいようだ

記事への反応 -
  • ある人が書いたBigListを改造して、リーフノードをリンクドリストでつないだら全列挙が早くなって、スタックオーバーフローしなくなった。 ただ、その代わり元々のコードにあったノー...

    • BigList<T>の内部で使われているやつをGapBuffer<T>に置き換えてみたら、リーフノードのサイズが32768だと遅くなるけど、最大メモリー使用量はそこまで変わらんな。 ブロックサイ...

    • ちなみに俺はIQ84の境界知能で、発達障害持ちなのだ。 言語性106~120、動作性は60ぐらいなのだ。 言語性の下位項目は正常で、単語が飛びぬけて高いのだ。 動作性の下位項目はほぼ正常で...

      • 素直にすげーな 自力でよくやった おれも自力でAndrew Ng教授のコースとかとったけど微分からやり直す羽目になって大変だったわ 半年くらいやってた

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん