小野マトペの業務日誌(アニメ制作してない篇)

はてなダイアリーの閉鎖をうけ、旧ブログ http://d.hatena.ne.jp/ono_matope/ から移行しました。続きは→ http://matope.hatenablog.com/

Reflection on Java

ono_matope2006-02-08

受け取ったURLの画像をダウンロードして、反転したイメージと一緒に保存するプログラムをJavaで書いた。所要時間一〜二日。意外とサクっと出来たけど、JavaCUIなアプリで画像をいじるのがこんなに大変だとは知らなかった。アプレットGUIアプリとはまったく勝手がちがう…。で、それをマルチスレッドに改良したら、amazonの中サイズの画像を10枚処理するのに4秒ほど掛かっていた時間が、1秒半ほどに大幅短縮された。なるほど強力マルチスレッド。
さて、このJavaで処理を行うのか、それともサーバーを立てるのかという観点で状況をまとめてみると。

  • 反射処理をJavaにやらせると…
    • good:サーバーを立てなくてよい。
    • bad: 画像をローカルに保存するので、ファイル操作のぶん時間が掛かる。
    • bad: ウィジェット終了時に画像の一時フォルダを削除するにしても、ユーザのHDを汚してしまう。
    • bad: jpg保存時に劣化が起きる(これは頑張れば回避可能?)
    • bad: 一度に10枚までの処理を一括で掛けるので、すべての処理が終わるまで画像が出せない。

サーバにやらせると…このgoodとbadが反転するんだな。単純に比較すると

Java方式:遅いけど、サーバー運用いらない。
サーバー方式:速いけど、サーバー止めるとソフト動かない。

…まあ、『今後1,2年はサーバーを稼動し続けなければならない』と言うあたりがネットワーク素人には敷居が高すぎるのでやらないが吉なんだろうな…。うん。わざわざウィジェットからJava呼び出すって時点で十分根性もんだよ。よくやった。俺。*1

*1:納得の仕方がおかしい