Top 上へ 目次
Ver.11 正式版のリリース
いろいろと私生活ではトラブルが続いていますが、なんとか正式版の公開です。
リリース直後はドタバタしそうな気もしますが落ち着いたら、のんびりリメイク案件も片づけたいです。
本体は、ちょっとやり切った感が強いので、やる気チャージに少し時間がかかりそうです。
まぁ、何とかなりそうな「アンケートの浪漫枠のネタ」もチラホラありますので、あまり「のんびり」が長続きする気がしませんが・・・。
そうそう、ちょっと前に触れたImageListの性能問題は、直接使ってるのはMFCのCImageListですがAttachしてるだけであり、中身はIImageListのインターフェイスを使ってます。(だから先頭にCとかIとか付けなかった)
ですから画像追加時の性能問題って何らかのAPIを使うことを考えるとダメで、データの管理部分から自作しないと突き抜けた性能になりえないはず、という話です。
まぁデカい画像をドンと作って、ブロック単位で区分けして、追加時にはドカンとまとめて処理して、AVX使って並列処理とか、Direct2D使って転送とか・・・おお、何とかなりそうじゃないか、という気もするのですが、やる気が微妙です。
だって画像処理って嫌いなんですもの(ォィ)
AVX2使用版について
ぶっちゃけた話をすると、実験的な取り組みです。
モルモット扱い上等!という人しかお薦めしません。
Intel Coreアーキテクチャの4世代、つまりHaswellマイクロアーキテクチャ以降のCPUを搭載している環境専用の差分です。
AMD派の方は申し訳ございません。
(最近はAMDの方が何かと高性能だったりしますが、残念ながらコンパイラの世界ではIntelが最強すぎてどうしようもありません)
なお、通常版とピーク性能の差はほとんどありません。
ベンチマークの値を分析すると、揺らぎが減って、性能のバラつきが上の方へ固まる傾向が高くなります。
どういうところに効果があるかというと、もともとコンパイラの最適化で自動的に並列処理が適用されるように記述している部分の一部がAVX2コマンドへの置き換えが発生する程度です。
ですからピークじゃないところの性能は割とコンスタントに上がってますが、体感速度に影響するほどではありません。
まぁ遅くもならないので、あまり期待しない程度でご利用くださいという感じです。
今後はどのような扱いになるのか未定ですが、AVX2版のランタイムや、最適化がかかる記述にすれば効果が強く表れると思います。
そのあたりは追々試してみたいとは思いますが、気が向いたらという程度で考えてます。