2019/11/17(日) [n年前の日記]
#1 [gimp][prog] gimp-texturizeのループ高速化ができないか試行錯誤中
昨日、gimp-texturize プラグインのバグを取れた感じになったのだけど。その代わり、処理時間がグンと増えてしまったあたりが気になって。一番深いところのループを少しでも高速化できないかと試行錯誤中。
ループ内の座標値は、プラス方向にのみ増えるだけなのだから、画像の横幅、あるいは縦幅を超えた時だけ、ポインタ等をリセットしてやれば済むのではないか、そのほうが処理も速くなるはず、と予想しつつ書き直しているところ。
もっとも、こういうのは、ちゃんと実測してベンチマークを取ってみないと、たしかなことは分からない…。
ループ内の座標値は、プラス方向にのみ増えるだけなのだから、画像の横幅、あるいは縦幅を超えた時だけ、ポインタ等をリセットしてやれば済むのではないか、そのほうが処理も速くなるはず、と予想しつつ書き直しているところ。
もっとも、こういうのは、ちゃんと実測してベンチマークを取ってみないと、たしかなことは分からない…。
◎ C言語で時間取得。 :
ググってみたら、C言語で開始時間と終了時間を取得する場合、clock() を使うのが手っ取り早いらしい。
しかし、Windows上で使うと、10ms前後の精度しかないそうで。
もっとも、OS上では同時に色んな処理をしているのだから、他のプログラムとの兼ね合いで、実行するたびに処理時間も変わってくるはず。であれば、誤差の範囲だよな…。
#include <time.h> ... int start = clock() ... int end = clock() printf("%f sec.\n", (double)(end - start) / CLOCKS_PER_SEC);
しかし、Windows上で使うと、10ms前後の精度しかないそうで。
もっとも、OS上では同時に色んな処理をしているのだから、他のプログラムとの兼ね合いで、実行するたびに処理時間も変わってくるはず。であれば、誤差の範囲だよな…。
◎ キャンセルボタンを押した際の動作も修正。 :
gimp-texturizeプラグインの動作確認をしていた際、キャンセルボタンを押したらエラーが出ることに気づいた。
main.c を眺めてみたら、キャンセルボタンが押された際に status = GIMP_PDB_CANCEL; をしてるのに、status の値をチェックせず、生成画像が存在することを前提にして後片付けをしているように見えた。キャンセルした時だけ、そのあたりをスキップするように修正。
ただ、このプラグインは、「フィルターの再適用」を呼んだ際にも必ずエラーが出るし、前回の入力値を覚えてくれたりもしないので、どうも GIMP側と連携するあたりが、現状の仕様と合ってない気もする。
元々、GIMP 2.2 時代のプラグインのようだし…。その後、プラグインを書く際のお約束が変わってしまった可能性もありそうだなと…。
main.c を眺めてみたら、キャンセルボタンが押された際に status = GIMP_PDB_CANCEL; をしてるのに、status の値をチェックせず、生成画像が存在することを前提にして後片付けをしているように見えた。キャンセルした時だけ、そのあたりをスキップするように修正。
ただ、このプラグインは、「フィルターの再適用」を呼んだ際にも必ずエラーが出るし、前回の入力値を覚えてくれたりもしないので、どうも GIMP側と連携するあたりが、現状の仕様と合ってない気もする。
元々、GIMP 2.2 時代のプラグインのようだし…。その後、プラグインを書く際のお約束が変わってしまった可能性もありそうだなと…。
[ ツッコむ ]
#2 [pc] お袋さん用のノートPCをメンテナンス中
茶の間に置きっぱなしで埃を被っていた、お袋さん用のノートPCをメンテナンス中。富士通製ノートPC。FMV、AHシリーズ、AH33/J。型番は、FMVA33JW1、だと思う。
Windows Update の最終インストール日が、去年の7月になってる…。どういうこと…。つまりは、そのぐらいの期間、電源すら入れてなかったということだろうけど。
Celeron B720 というCPU、しかも、プリインストールソフトがてんこもりで謎サービスが立ち上がりまくりの富士通製ノートPCのせいか、あらゆる処理がとんでもなく遅い。エクスプローラを開くだけでも数秒待たされる。コントロールパネルもなかなか開いてくれない。こんな状態では、そりゃ電源なんか入れないよな…。体感では、Raspberry Pi Zero W でデスクトップ環境を使おうとした時と似ている。そのぐらい重い。とにかく遅い。
真っ白な本体だし、液晶ディスプレイはつやつやだし、見た目はオシャレなんだけど…。こういうものを平気で売りつけてた日本メーカなんて、そりゃ落ち目になって当然、とすら思えてくるほどの遅さ。これは厳しい。
Windows Update の最終インストール日が、去年の7月になってる…。どういうこと…。つまりは、そのぐらいの期間、電源すら入れてなかったということだろうけど。
Celeron B720 というCPU、しかも、プリインストールソフトがてんこもりで謎サービスが立ち上がりまくりの富士通製ノートPCのせいか、あらゆる処理がとんでもなく遅い。エクスプローラを開くだけでも数秒待たされる。コントロールパネルもなかなか開いてくれない。こんな状態では、そりゃ電源なんか入れないよな…。体感では、Raspberry Pi Zero W でデスクトップ環境を使おうとした時と似ている。そのぐらい重い。とにかく遅い。
真っ白な本体だし、液晶ディスプレイはつやつやだし、見た目はオシャレなんだけど…。こういうものを平気で売りつけてた日本メーカなんて、そりゃ落ち目になって当然、とすら思えてくるほどの遅さ。これは厳しい。
[ ツッコむ ]
以上、1 日分です。