いよいよマルチスレッド対応版として1.0.4Gを公開します。一応、比較検証も目的の一つですので、シングルスレッド版もつけてあります。
「Readme.txt」にも記載しましたが、一時配布元への直接リンクを禁止いたします。(過剰負荷を避けるため) また、このツール単体に対する有料有償等の利用配布を禁止いたします。
無償かつ非営利の二次配布に関してはとくに制限を設けませんが、Readme.txt内の「今後の予定」を参考の上、開発そのものが個人の趣味の範囲であることをご理解の上でご判断くださるようお願いいたします。ただし、配布ファイル内の一部のみを抽出し、そのまま配布するなどは禁止させていただきます。
マルチスレッドについて:
複数のコアをもつCPUや、ハイパースレッド対応CPUなどでは複数のスレッドをより効率よく処理することが可能です。シングルスレッドプログラムではそうしたCPUの機能が生かせませんが、マルチスレッド化することでより短時間で処理をおこなえることもあります。
デメリットとして、処理の順番がかならずしも処理開始の順番ではない(非同期)ため、処理によっては順番をあわせなければならない(同期処理)という点です。
今回は、イメージファイル入力からZLIB使用した圧縮を行う間を、マルチスレッド化してます。ただし、圧縮したデータをファイルに書き出す部分で同期処理をしているため、まだパフォーマンスをあげれる余地はのこっています。それでも、CPUやメモリー環境では半分以下の時間で圧縮がおわるなどの改善ができましたので公開しておきます。
ソースコードでは、マルチスレッドモデルと、シングルスレッドモデルは、ソリューションのコンパイラオプションのコマンドラインで指定しています。
http://irpg.jp/DL/OokamiAtSiren/PS3FreePops34/PS3FreePops34-104G.zip