Q13:プログラムを分けて実行した場合でも、javaが2重・3重にローディングされないようにできないでしょうか。又は、メインプログラムに全てのプログラムを登録していてもファイルサイズが肥大化しない工夫はないでしょうか。
Q13-1:
外部通信コンポーネントを使う欠点
メインのプログラムに全てのプログラムを入れた場合には、ファイルサイズが大きくなり起動に時間がかかってしまいます。ただ、利点としては、画面切り替えスピードが早く、使い勝手はよくなります。
現在は、メインプログラムに負荷をかけないでいいように、日頃頻繁に使わないプログラムは「外部プログラム」として実行させています。
※MZPFプログラムもただ、外部プログラムで起動すると、javaプログラムがローディングされ、起動までに時間がかかり使用者から「動作が遅い」というイメージをもたれてしまいます。
(要望)プログラムを分けて実行した場合でも、javaが2重・3重にローディングされないようにできないでしょうか。又は、メインプログラムに全てのプログラムを登録していてもファイルサイズが肥大化しない工夫はないでしょうか。
A13-1:
プログラムロード速度
メインプログラムにすべてを含めた場合、そのロード速度を向上させる効果的な手段はこれといってございません。最も効果的なのは、メインプログラムそのもののサイズを抑えることであり、具体的には、メインプログラムとして保存しておく必要のないテーブルデータや画像データ(データベースや画像ファイルから取得するようなデータ)は、プログラム終了時にクリアするようにしてから保存することくらいです。
外部プログラム通信コンポーネントを利用する場合、その外部プログラムがMZPFアプリケーションであるならばJavaの起動は回避できません。すなわち、計算機負荷そのものを軽減することはできませんので、あとは、いかにしてそれを体感させないようにするかの工夫になるかと思います。
1つの方法として、メインプログラム起動直後に、実際に使用するかどうかに関わらず、あらかじめ外部プログラムを起動しておくという方法が考えられます。
その外部プログラムは、起動時にはフレームのiconfy()メソッドを用いて最小化するようにしておけば、ディスプレイ上にウィンドウが現れることもありませんので、処理速度をごまかせるかもしれません。
備考:「一般的な質問」の「Q&A125」にも掲載。