C/C++ゲーム製作総合スレッド Part7at GAMEDEVC/C++ゲーム製作総合スレッド Part7 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト315:名前は開発中のものです。 15/02/11 02:41:42.58 0cWu/C1d.net 俺が昔作ったベンチ引っ張り出してきた 10000個確保して解放を1セットで、10回繰り返す malloc 0.0104349686516726 100 new 0.0170437163409596 163.332702856062 tlsf 0.0327989992535455 314.318138831095 右側がmallocを100とした場合の倍率。意外とtlsfは遅い。 んで下が自作のメモリアロケータでnewとdeleteをオーバーロードしてて 上で使ったnewするソースをそのまま使ってる。 fixpool 0.01086365697986310 104.108189899754 fixpool-ss 0.00270476282206395 25.9201815774541 アルゴリズムは一回使ったものをリストにつなげておいて、newのとき取り出すだけ。 ssは上限が分かっている場合で、先にメモリ確保するのでmallocを上回れる。 まぁ、はっきり言って速度だけを考えると自作アロケータの必要はないかなレベル・・・と思う。 確か、スマートポインタのベンチもどっかにあったはずなんだが、どこだったか・・・ 316:名前は開発中のものです。 15/02/11 02:52:05.14 IKslX+U4.net >>304 ゲームエンジン•アーキテクチャ(ソフトバンククリエイティブ)によれば、デフォルトのnewが遅い理由は管理コストとOSのコンテキストスイッチとあるけど URL先の内容からすると最初に確保された分越えなければコンテキストスイッチは発生しないって事なんかな ていうか2000年の時点でそういう仕様だったのか 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch