実行時にJavaバイトコードを生成する可能性を考えています(クラスファイル経由ではなく、直接メモリに直接アクセスすることをお勧めしますが、質問)。実行時生成コードのJavaガベージコレクション
私はこれを行うことができると理解していますが、ガベージコレクタは使用されていないコードを掃除しますか?私は何年も前にそれがそうではないと主張していることを覚えていますが、私は今話題への参照を見つけることができません。
この目的を明確にするために、私は通常のデータ処理シナリオでは気にしません。しかし、遺伝的プログラミングを考えてみましょう。何十億もの小さなプログラムが生成され、そのシナリオでは、可能な限り速く実行しようとする価値があり、使用されなくなったコードを解放することが重要です。私はもっと複雑なことをしようとしていますが、遺伝的プログラミングと似ています。
あなたの例(多数の小規模なクラス)を考えると、私はJavaクラスを含まないソリューションを検討することをお勧めします。これらの各クラスのクラスローダーを作成するオーバーヘッドは極端に大きくなります。代わりに、ある種の自宅通訳を見てください。 – kdgregory
しかし、単一のクラスローダーを作成して多数のクラスに使用することはできません。そして、ローダーへのすべての参照を削除すると、それらを一度に解放できますか? – rwallace
はい - 一部を残し、他の人を捨てる(遺伝子アルゴリズムのように)ことは望ましくないという条件で提供されます。 – kdgregory