■吉里吉里/KAG/TJS雑談質問スレ■その26at GAMEDEV■吉里吉里/KAG/TJS雑談質問スレ■その26 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト371:名前は開発中のものです。 12/09/09 18:43:01.57 mfE2cjN2 辞書作った後にループで一気に何万と要素を足すとハッシュテーブルが 小さいままだから遅いって話なので,ゆっくり足されるのは多分問題ないはず。 ScriptsExプラグインにrehash()を足したので,これ使って Plugins.link("ScriptsEx.dll"); (中略) for (var i = 0; i < NUM; i++) { var elm = "hash_number_is_" + "%06d".sprintf(i); Scripts.rehash() if (i > 0 && !(i % 1000)); hash[elm] = 1; } みたいにしてみると高速化される。理由の詳細はScriptsExのmanual.tjs参照のこと。 でもassignStructは吉里吉里本体をいじらないとどうしようもない予感。 372:名前は開発中のものです。 12/09/09 23:06:04.76 UoexBhAR >>371 rehash()追加、ありがとう! でも残念ながら、以下のスクリプトで実測すると、rehash()が ある場合とない場合とで、実行時間の差は1%程度で殆ど変わらな かった…。難しいもんだね。 Plugins.link("ScriptsEx.dll"); for (var i = 1; i <= 40; i++) { var tick = System.getTickCount(); var hash = %[]; for (var j = 0; j < 1000*i; j++) { Scripts.rehash() if (j > 0 && !(j % 1000)); hash['abc'+j] = j; } dm('tick('+i+') = ' + (System.getTickCount() - tick)); } 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch