Visual Studioのデバッグモードでは約5分、リリースモードでは約10秒かかります。リリースコードよりも実行時間が数桁長くなるデバッグコード
プログラムの最後にデバッグする必要がある場合、プログラムがブレークポイントに到達するまでには時間がかかりすぎるため、これは大きな問題になります。
私はシリアライズを行い、boost :: serializeを使用してデバッグコードより前のすべての変数をシリアル化しましたが、それらの変数をすべてデシリアライズするには1〜2分かかります。
だから何ですか?私は、デバッグモードでコードを実行すると多くの最適化とインラインの処理が無効になることを知っていますが、デバッグモードでコードを実行するには約2桁の時間がかかります。プログラマーがこの待機時間を回避するために使用するハックや何かがありますか?多くのプログラムが私よりもはるかに計算量が多いことを知っていますが、デバッグコードがブレークポイントに達するのを5分待つことは非常に疑問です。
ループ内に条件付きブレークポイントを置くと、処理時間が同様に増加することがわかりました(画像処理)。デバッガは、ブレークポイントの条件式を非常にループで評価しなければならず、大きな負荷になる可能性があります。たぶんあなたは似たようなものを持っています – Dampsquid
私はdampsquidに同意します。メモリウォッチポイントはもう一つの大きな減速要因です。ブレークポイントやウォッチポイントなしで実行してみてください - どれくらい速いですか? – TonyK
ブレークポイントを持たないデバッグで実行するのに要する時間と、ブレークポイントでデバッグするだけで約0.5秒の差があり、実行時間が5分以上の場合はそれほど意味がありません。 – user1262907