私はScalaプロジェクトで作業しており、Scalaコードを作成してコンパイルした後、私は目的のフォルダにいくつかのクラスファイルを見ました。 なぜクラスファイルが非常に多く生成されるのか不思議です。 具体的な理由はありますか?コンパイル後にscalaが非常に多くのクラスファイルを生成するのはなぜですか?
0
A
答えて
9
Scalaコンパイラは、jvm表現にするための追加モジュールをたくさん作成しています。バージョン2.11で、例えばそれが作成されます。
- 各ラムダ式
- 実装方法 各専門用
.class
各trait
各object
とpackage object
.class
ため.class
ため.class
例えば、class Foo[@specialized(Long, Double) A, @specialized(Long, Double) B]
すべて
(Long, Double, AnyRef)
x(Long Double, AnyRef)
の組み合わせに対して3 * 3 = 9の異なるクラスを作成します。
しかし、これらの問題は確かに昨日修正されています。
Scala 2.12jdk 8
と交換すると、SAM
ラムダ表現とインターフェイスのデフォルトメソッドのために、1と3のオーバーヘッドが低下します。
Dotty's Linkerは、コードのためだけに必要な特殊化を生成しますautospecialization機能を持っており、大幅* *あまりにも多くのファイルがどのようなものです。4.
関連する問題
- 1. なぜWatchServiceは非常に多くの操作を生成しますか?
- 2. なぜscikit-learnのGridSearchCVが非常に多くのスレッドを生成するのですか
- 3. Dev C++でコンパイルしたあと、PEファイルのセクションが非常に多くなるのはなぜですか?
- 4. なぜビルド後に多くのイメージが生成されるのですか?
- 5. 非常に多くのクラスをインポートするのはなぜですか?
- 6. ループバックアドレスが非常に多いのはなぜですか?
- 7. なぜcreateCriteriaが非常に多くのオブジェクトを返すのですか?
- 8. コンパイルされているにもかかわらず、TSエラーが非常に多いのはなぜですか?
- 9. JMeterは負荷テストで非常に多くのスレッドを作成するのはなぜですか?
- 10. javacで生成されるクラスファイルは常に同じですか?
- 11. なぜASP.NET IDの `UserStore`に非常に多くのリポジトリがありますか?
- 12. なぜワニスに非常に多くのパスがありますか?
- 13. なぜGoogleアナリティクスは "ga:"で(キーではなく)非常に多くの値にプレフィックスを付けますか?
- 14. Ecto.Query結合が非常に多くのINNER JOINを生成します
- 15. なぜ非常に多くのApacheプロセスが実行されていますか?
- 16. なぜASP.NET MVC 4には非常に多くのNuGetパッケージがあり、本当に重要なのですか?
- 17. Keychainの秘密鍵セクションに非常に多くのiMessage署名鍵があるのはなぜですか?
- 18. QTのiOSコンポーネントが非常に多くのディスク容量を占めるのはなぜですか?
- 19. なぜ私はプロジェクトをビルドするとSilverlight Binに非常に多くのファイルがありますか?
- 20. 脆弱性を持つ非常に多くのドッカー画像があるのはなぜですか?
- 21. なぜユーザー定義のセルのUITextFieldとセルビューの間に非常に多くのコントローラがあるのですか?
- 22. なぜgccとclangはメンバ関数のテンプレートパラメータに非常に異なるコードを生成するのですか?
- 23. CおよびC++で「静的」キーワードが非常に多くの意味を持つのはなぜですか?
- 24. Redis for PHP Sessions - なぜWebサーバー上で非常に多くのセッションが、ローカルには1つだけですか?
- 25. gitのは、非常に多くのファイル
- 26. Index.jspを実行すると、非常に多くのエラーが発生します。
- 27. のInternet Explorer&エッジSkrollrジャンプ非常に多くのピクセルの後に
- 28. リリースモードで非常に多くのエラーが発生する理由WP7
- 29. なぜC#接続プーリングでsp_resetconnectionsが非常に多いのですか?
- 30. なぜこのコードはgo(約81M)で非常に大きな実行ファイルを生成するのですか?
とのトラブルを減らすことですか?宣言されたクラスごとに*複数のクラスファイル*を意味しますか? –
はい、ソースファイル内の単一クラスの場合でもあります。コンパイラはいくつかのクラスファイルを作成します。 –