Excelsior JET 6.4の新機能
Excelsior JET 6.4 は、著作権保護強化のために設計された機能を持つ最初のリリースです。
今までのバージョンは、ネイティブ実行ファイルの中に Java クラスのコンパイルを最適化する副産物として、無償の プログラム コード保護 が提供されました。しかし、文字列リテラルなどプログラム データは、16進エディタでそのまま表示されました。今回、このようなデータをスクランブルするオプションが追加され、1つのチェックボックスで実行ファイルに任意のリソースをパックできます。
さらに、JET コントロール パネルにシームレスに統合される新しい StartUp Optimizerを利用するには、文字通り何もする必要がありません。これは、Windows でのみ利用可能であったコマンドラインからの Exceutable Image Optimizer に取って代わります。
バージョン 6.4 では、インストール ツールキットから大きな悩みの種である、 JET ランタイム アップデートのサポート の欠如を取り除きました。さらに、もうひとつの悩みの種である長い ビルド時間 の軽減にも一歩進みました。生成されたコードに影響しないプロジェクト設定を変更する場合、クラスは再コンパイルされません。たとえば、実行ファイルにアイコンを追加したり、デフォルトの GC 設定を調整する。
注意: すべての新機能がStandard エディションで利用できるわけではありません。エディオションの機能比較をご参照ください。
また、Excelsior JET 自体と最適化されたアプリケーションの両方で速度と安定性の改善がされました。
最新の Java バージョンをサポート
Excelsior JET 6.4 は、多数のプラットフォーム上での Java SE 6 に対する公式の Java 互換性キット(JCK) テストをパスしました。また、最新の Java SE プラットフォーム機能をサポートします。サポートされるマイクロバージョンは、Java SE 6 Update 7 です。
J2SE 5.0 もサポートされます。含まれるマイクロバージョンは、J2SE 5.0 Update 15 です。
オペレーティング システムのサポート
Windows Vista と Red Hat Enterprise Linux 5 がサポートされました。詳細は、必要なシステムを参照してください。
● Excelsior JET 6.0 での新機能は、こちらを参照ください。
● Excelsior JET 5.0 での新機能は、こちらを参照ください。
新機能
- ストリング暗号化
-
JET コントロール パネルの Target ページで可能になる、ストリング暗号化は実行ファイルに格納される Unicode、UTF-8、ASCII ストリングのすべてをスクランブルし、16進エディタですぐに見えないようにします。次のことが含まれます:
- リフレクション情報
- ストリング リテラル
- メイン クラス名等の各種ランタイム データ
ストリングは、アプリケーション実行時にオンデマンドで解読されます。我々のテストでは、パフォーマンスへの影響は最小でしたが、アプリケーションによっては影響が出る可能性があります。
詳細については、 Excelsior JET 6.4 User's Guide の "Intellectual Property Protection" の章の "Data Protection" セクションを参照ください。
- リソース ファイルの暗号化
-
JAR ファイルをコンパイルするとき、イメージ、テキスト、アプリケーション データなどの含まれるリソースを暗号化することができます。その結果、最適化された実行ファイルには、元の形でリソースが含まれません。このオプションは、JET コントロール パネルの Target ページで設定できます。
リソース ファイルは、アプリケーション実行時にオンデマンドで解読されます。これは、Excelsior JET がJVM レベルでアプリケーション データ保護をサポートするため、Java バイトコード Obfuscator で見られないユニークな機能です。
我々のテストでは、パフォーマンスへの影響は最小でしたが、アプリケーションによっては影響が出る可能性があります。
詳細については、 Excelsior JET 6.4 User's Guide の "Intellectual Property Protection" の章の "Data Protection" セクションを参照ください。
- さらに高速なアプリケーションの起動
-
新しく実装された Startup Optimizer で、アプリケーションのコールド スタートアップ タイムが 2つの要因により減少します。
この最適化を有効にするため特別なことは必要ありません。アプリケーションを JET コントロール パネルの Test Run ページで実行し、いつものように実行ファイルをビルドするだけです。
この操作の背後で行われていることは:
- Test Run 中に、スタートアップ プロファイルが収集され、ファイルに保存されます。
- そのファイルが自動的にプロジェクトに追加されます。
- コンパイラがそのプロファイル情報を読み込み、必要な最適化を実行します。
アプリケーションを修正するたびにプロファイルを収集する必要はありません、それは、ほとんどの場合、スタートアップ プロファイルはまったく変更がないからです。プレリリース QA向けの最終ビルドを作成する前に、再収集したほうが良いでしょう。
基礎になる最適化技術は、コンパイルした実行ファイル内のコードとデータの再配列に依ります。以前のバージョンに含まれていた Exceutable Image Optimizer を使用することと比較して、新しい Startup Optimizer は次のような利点があります:
- 使い方が非常に簡単
- 任意のサイズの実行ファイルに適用可能
- Windows と Linux の両方をサポート
最大限の効果のためには、Startup Optimizer を Global Optimizer といっしょに使用してください。
詳細は、 Excelsior JET 6.4 User's Guide の "Startup Time Optimization" 章を参照ください。
- スマート コンパイル (レベル 0)
-
JET Optimizer は、補助のアプリケーション ファイルまたはプロジェクト設定のみ変更された場合、アプリケーション全体の再コンパイルを避けるために、プロジェクト内の変更を追跡します。バージョン情報、ランタイム設定、リソース ファイル、アイコン/スプラッシュ画面などを変更した場合、コンパイル時間は大幅に減少します。
必要に応じて、JET コントロール パネルの Build メニューからフル コンパイルをすることができます。
将来のバージョンでは、アプリケーション クラスが変更された場合でも、プロジェクトの部分的な再コンパイルをサポートする基本実装を強化する予定です。
- JET ランタイムのアップデート
-
新バージョンの JET ランタイムといっしょにアプリケーションを再コンパイルし、以下のことをする場合、既存のインストール ファイル用にアップデート パッケージを作成することができます:
- 重大な修正を含むホットフィックスまたはメンテナンス パックを適用する
- 新バージョンの Excelsior JET を使用して起動する
- Java SE マイクロバージョンを変更する (たとえば Java SE 6 Update 3 から Update 7 に移行する)
- メジャー Java バージョンを変更する (たとえば、J2SE 1.5 の代わりに Java SE 6 を使って起動する)
パッケージをアップデートするために、JET ランタイムの新バージョン用にコンパイルした実行ファイルを追加したり、アップデートを作成するとき、JetPackII は、Runtime Update ダイアログを表示します。ここでアップデート パッケージに含めるランタイムの適切なバージョンを選択できます。
以前のリリースでは、このような場合新しいインストール パッケージを作成しなければなりませんでした。
詳細は、 Excelsior JET 6.4 User's Guide の "Deployment Automation" 章の "JET Runtime Updates" セクションを参照ください。
その他の改良
- 改良されたアプリケーション パフォーマンス
-
コンパイルされたアプリケーションは、以下の改良によりさらに高速にまります:
- より高速なメモリ アロケーションとガーベージ コレクション
- 強化されたループ最適化
- より良いレジスタ アロケーション
- さらに高速になった JIT コンパイル
-
様々なケースで 平均の JIT コンパイル時間が 15〜20%減少しました。さらなる高速化に努めています。
- さらに高速な AOT コンパイル
-
品質の最適化を妥協せずに、約 15% ビルド時間が減少しました。さらなる高速化に努めています。
|