とりあえず抽象クラスのポインタをstd::listにぶち込んでタスクシステム風にしてみる
↓
1000個でFPS28wwwww
↓
コンパイラの設定を変えてみる
↓
1000個でFPS58
↓
ソート用の評価関数をinlineにしてみる
↓
1600個でFPS53
これ以上軽く出来る方法無いのかな…(´・ω・`)
std::listを出来るだけ軽く
Re: std::listを出来るだけ軽く
公開しないお遊びならいいかもしれませんが、一般にPCの処理速度に依存するプログラム(例:ビジーループを用いたウェイト)を書くのは良くないでしょう。夢幻ノ月夜 さんが書きました:じゃあデバッグモード(処理落ち)前提で避ける弾幕をお遊びで用意してみましょうかね
真面目に処理落ち状態で避ける弾幕を作るなら、プログラムでゲームの進行速度を制御しましょう。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 14年前
Re: std::listを出来るだけ軽く
Debugモードでビルドした実行ファイル配布すると色々と個人情報漏れる可能性ありますよ
Re: std::listを出来るだけ軽く
Debugモードの公開は控えた方がよいです。夢幻ノ月夜 さんが書きました:じゃあデバッグモード(処理落ち)前提で避ける弾幕をお遊びで用意してみましょうかね
それに必要なデバッグ用のDLLは普通のPCにはないし、そのDLLの再配布は禁止されてますし。
https://msdn.microsoft.com/ja-jp/library/8kche8ah.aspx
最後に編集したユーザー へにっくす on 2016年4月15日(金) 04:57 [ 編集 1 回目 ]
- tk-xleader
- 記事: 158
- 登録日時: 14年前
Re: std::listを出来るだけ軽く
今回の場合、ソートされたコンテナにデータを挿入するのですから、std::vectorかstd::dequeに変更するのであれば、挿入のたびに線形探索するのではなくて、std::upper_boundにファンクタを渡して二分探索させた方が早くなるかもしれないですよ。
Re: std::listを出来るだけ軽く
DLLだけでなく、アプリケーション本体も再配布禁止のようですね。へにっくす さんが書きました:Debugモードの公開は控えた方がよいです。夢幻ノ月夜 さんが書きました:じゃあデバッグモード(処理落ち)前提で避ける弾幕をお遊びで用意してみましょうかね
それに必要なデバッグ用のDLLは普通のPCにはないし、そのDLLの再配布は禁止されてますし。
https://msdn.microsoft.com/ja-jp/library/8kche8ah.aspx
(同URLより引用)アプリケーションのデバッグ バージョンと、各種の Visual C++ デバッグ DLL は、再配布できません。