1

jar内にいくつかのクラスファイルがあります。現在、scala コンパイラのいくつかのコンポーネント (特に Inliners) を使用して、そのクラス ファイルを最適化する方法を探しています。
私の考えは次のとおりです。

  1. ICodeReader を使用してクラス ファイルから ICode を発行する

  2. 目的の最適化を実現するために Inliner クラスのインスタンスを使用する

それが正しい方法かどうかはわかりません

問題はそれです

  1. クラス ファイルを読み取り、必要な ICode を生成するために ICodeReader を使用する方法。ICodeReader は ClassfileParser から継承します。私が使用する可能性が高い唯一の方法は parse(file: AbstractFile, root: Symbol) ですが、問題は root 引数です。

どんな助けでも大歓迎です

4

1 に答える 1

0

Scala コンパイラは、ソース コードと中間ステップの結果に基づいてバイトコードを生成し、有効な場合はいくつかの最適化を適用しようとします。

あなたの場合、私の理解が正しければ、ソースではなくコンパイルされたクラスがあり、コンパイルされたクラスで Scala コンパイラの機能を使用できるとは思わないでしょう。

私の理解では、既存のバイトコードを取得してソースコードにアクセスせずに最適化できる、ProGuard などのバイトコード オプティマイザです。

http://proguard.sourceforge.net/#FAQ.html

于 2012-05-09T07:20:35.050 に答える