Q57:@起動の高速化をしたい。
A外部アプリからMZPFで作成したアプリを呼び出したい。
Q57-1:
@アプリケーションが大きくなるにつれ、起動が遅くなり、起動の高速化が出来ないかと考えています。ファイルサイズが大きいのが一つの要因だとは思いますが、これは仕方のない事だと思っております。高速化する手立てなどはありますでしょうか?
また、複合コンポーネントに分けて、AP_DATA_COMBに配置し、参照呼び出しをするよりも、1ファイルとして格納したほうが速いなどの検証結果などはありますでしょうか?なにか情報がありましたらお願い致します。
A外部アプリからMZPFで作成したアプリを呼び出したいと思います。 その際に、起動しているMZPFアプリをキックして、特定の処理を呼び出せればと考えております。 実現可能でしょうか?
A57-1:
@アプリケーションをシリアライズデータ(.mzas)で保存・ロードしている場合、起動時間のそれ以上の短縮は望めません。外部参照の影響ですが、手元の比較的規模の大きなアプリケーションで確認しましたところ、有意な差は認められませんでした。なお、ビルダー上でのロードの場合、2回目以降のロードは時間が短縮される傾向が見られました。これは、Javaのメ
モリ管理に起因するものと思われます。
A今のところ、外部のアプリケーションからMZPFアプリケーションのメソッドを直接起動する一般的な方法はありません。次善の策として、外部のファイルを利用する方法が考えられます。すなわち、外部アプリケーションから何らかのファイルを出力させるようにしておき、一方、MZPFアプリケーションからはタイマーを使って定期的にそのファイルの有無を確認させ、ファイルが存在したときにメソッドを起動させるという方法です。即応性に欠けますが、これが最もシンプルで動作が確実と思われます。
メソッドを直接起動する方法としましては、MS Visual Studio等でWindowsアプリケーションのコントロールのハンドルを取得するようなプログラムを作成することも考えられますが、実現可能かどうかが不明なことや、作業量や作業の煩雑さ等の点からいって、お勧めできません。