面白いタイトルを許してください、私はそれを "zip bomb"と類推して使っています。コンパイル時に多数のクラスファイル(または非常に大きな単一クラスファイル)を生成するscalaソースファイルを作成することは可能ですか?クラスファイルのサイズがソースファイルのサイズに比例してより速く成長する方法はありますか?スカラ爆弾? (ジップ爆弾のような)
27
A
答えて
32
特殊化は、固有の型パラメータの数が本質的に指数関数的です。 (私はこれがいつ発生することは困難を正確に予測するために見つけるのに)
class Huge[@specialized A, @specialized B, @specialized C](
val a: A, val b: B, val c: C
) {} // 730 files, 2.9 MB
class Gigantic[@specialized A, @specialized B, @specialized C, @specialized D](
val a: A, val b: B, val c: C, val d: D
) {} // 6562 files, 26 MB
パターンマッチングはまた、複雑なケースのためのコードの重複の多くを含むことができます。
+0
ああ、私は特化、素晴らしい答えを使用したことがない! –
+2
Rex、情報のために、パターンがhttps://issues.scala-lang.org/browse/SI-1133に一致するために発生したバグがあります。コードが多すぎるために失敗します。これは2.10の新しい仮想パターンマッチャーで修正する必要があります。 –
関連する問題
- 1. 爆弾 - Cocos2d/Box2d
- 2. バイナリ爆弾 - フェーズ4
- 3. 爆弾を爆発させてユニティのプレイヤーに投げ込む
- 4. 爆弾防止ワーカープロセスの作成(窓口)
- 5. 2進爆弾の崩壊。デコードダンプ - フェーズ2
- 6. タイルベースのA * Pathfinding、爆弾付き
- 7. 二進の爆弾をデフラグする:phase_5
- 8. 2進爆弾文の明確化
- 9. 爆弾を作成する - Cocos2d/Box2d
- 10. Jboss Resteasyの自動減圧によりジップ爆弾攻撃はどのように防げますか?
- 11. 非確定的なCの振る舞い? "フォーク爆弾"
- 12. 爆弾拡散テキストゲームを作ろうとする
- 13. ジップ爆弾から身を守るにはどうすればいいですか?
- 14. MadeLineのprotoライブラリとhhvmをPHPの爆弾に追加する
- 15. gzipまたはbzip2の爆弾から身を守るには?
- 16. 爆弾を使用した耳全体のシングルサインオン
- 17. "KMines"ゲームで爆弾の数を数えるコントロールを減らす
- 18. 地雷ゲーム(設定爆弾&勝者を獲得) - JavaScript
- 19. ボンバーマンネットワーク通信 - 爆弾を送ることはできません
- 20. 安全にフォーク爆弾を試してみる
- 21. データベースから爆発/爆発
- 22. C++ SDL Minesweeperフラグ爆弾を打つときにゲームを終了する
- 23. アンドロイドの爆発的なトランジションがGridViewを爆発させない
- 24. どのように爆発yii2
- 25. Java minesweeperのメソッドは正しく動作していない爆弾の番号を追加する
- 26. なぜバッシュフォークボムにパイプが必要ですか?古典bashのフォーク爆弾の場合
- 27. Java Webアプリケーションの展開:爆発するかどうか爆発しないか?
- 28. OCamlで爆発
- 29. PySparkで爆発
- 30. Andengine BOX2D爆発
地獄の中で何が必要なのでしょうか? –
@NikitaVolkov面白い精神運動のように聞こえるが、実用的なアプリケーションを見つけようとすると問題がある。 – Vatine
Ok、praticalアプリケーションが必要な人向け:DOS攻撃からScalaコードをコンパイルするサービスを保護しようとしています。 –