デバッガの仕業です

先週の水曜日に会社を休んで車検を取りに行きました。ユーザー車検ってやつ。
緊張してたのか、夜中にGが大量に発生する夢を見て飛び起きたり。Gとバイクは関係ないけど。
ちょっと身構えてたけど、やってみるとあっけない。
書類書いたりするのも含めて1時間とかかってない。
っていうか、こんな簡単でいいのかね?

土曜日、今月2度目のG登場。今回は茶色いやつで、生きがいい。
一瞬固まりかけたけど、すぐ側に置いてあったGJPで速攻虫の息に。
あとは食器用洗剤を上からかけて、完全に動きが止まるのを待ってからトイレにドボン。
慣れたわけではないのですが、以前より処理は速くなりましたね。

で、日曜日に早速ゴキアースレッド3個パックを購入。2週に1回は使用する予定。
購入して戻ってきてから、発射して再び外へ。
立ち読み等で時間を潰して2時間程度で戻ってきました。
でも、まだいる気配が…。気のせいならいいんですがね。

その後はお茶を飲みながらプログラム。弾幕ツールの移植。
川西さんのManagedDirectXの記事からタイマーやスレッドを使わなくてもいい方法を学んだので早速やってみる。
問題なく上手くいってほくほくしてたのも束の間、処理速度の問題が出てくる。
っていうか、はっきり言っておかしすぎる。
弾を100発程度撃っただけで10FPS近くまで落ちる。10発でも時折30FPSに落ちる。
やはり描画かと思ったのですが、描画だけでなく弾幕のアップデートだけでも遅い。
原因は色々考えてみた。
例えば、ポインタを弄っている最中にガベージコレクタが動いているとか、static_castでダウンキャストしてるのがまずいとか、メッセージ処理と描画がおかしな具合にかち合ってるとか…。
しかし、いろいろ試しても処理速度はほとんど変わらず。
若干早くなった気がする、という程度が限度。
そんなんで夜遅くになって、とりあえずリリースでビルドしてみることに。
これで実行したら、十分速いとはいえないまでもかなり高速化されてる。
まさか最適化か?と思ったけど、デバッグビルドで最適化してみてもあんまり変わらず。
しかし…まさかと思ってデバッグなしで実行してみたら、これがビンゴ。全く問題ない速度。
全てはデバッグモードの所為でした。半日のほとんどが無駄だったよ。