[解決済み] GHCはなぜこんなに大きいのか/大きいのか?
2022-05-02 13:06:25
質問
簡単な答えはありますか?GHCはなぜそんなに大きいのですか?
- OCaml 2MB
- Python 15MB
- SBCL: 9MB
- OpenJRE - 26MB
- GHC:113MB
Haskellが正しいツールであるならば、なぜサイズを気にする必要がないのか」というエバンジェリズムには興味がありません。
どのように解決するのですか?
実にくだらない話です。 GHCに付属するすべてのライブラリは、少なくとも以下のような形で提供されています。 4つのフレーバー :
- スタティック
- ダイナミック
- プロファイド
- GHCi
GHCi版は、静的版を1つにまとめたものです。
.o
ファイルを作成します。 他の3つのバージョンは、すべて独自のインターフェイスファイルのセット(
.hi
ファイル)もあります。 プロファイルされたバージョンは、プロファイルされていないバージョンの約2倍のサイズになるようです(これは少し疑わしいので、なぜそうなるのか調べてみる必要があります)。
次のことを忘れないでください。 GHCそのものはライブラリです。 ということは、4つのGHCのコピーを手に入れることになります。 それだけでなく、GHCのバイナリ自体も静的にリンクされているので、GHCのコピーが5個になります。
私たちは最近、GHCi が静的な
.a
ファイルです。 これによって、これらのフレーバーを一つ取り除くことができます。 長期的には、GHC を動的にリンクすべきですが、それはより大きな変更で、動的リンクをデフォルトにする必要があるからです - C と違って、GHC では動的にリンクするかどうかを前もって決める必要があります。 そして、これが本当に実用的になるまでには、もっと多くの変更(たとえば、Cabalやパッケージシステムなど)が必要です。
関連
-
[解決済み】Haskellでの挿入ソート
-
[解決済み] エラー haskell: スコープ内にありません。どういう意味ですか?
-
[解決済み] Haskell - Ord aの型は何を意味するのでしょうか?
-
[解決済み] 読んで学ぶべき良いHaskellのソース [終了しました]。
-
[解決済み】GHCコアの読み込み
-
[解決済み] GHCはどのような最適化を確実に実行することが期待できますか?
-
[解決済み] GHCはなぜこんなに大きいのか/大きいのか?
-
[解決済み】Haskell/GHCの`forall`キーワードは何をするのですか?
-
[解決済み] Haskell型とデータコンストラクタ
-
[解決済み] GHCでコンパイルした小さなHaskellプログラムを巨大なバイナリにする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】haskellでリストを逆順にする
-
[解決済み] haskellにおけるdrop関数 - リスト内包を用いた実装
-
[解決済み] Haskell タプルをリスト化する?
-
[解決済み] RustのtraitとHaskellのtypeclassの違いは何ですか?
-
[解決済み] ghciで関数を複数行に渡って定義するには?
-
[解決済み] Haskellにはなぜ "data "と "newtype "があるのですか?重複] [重複] [重複
-
[解決済み] 制約条件付き特殊化
-
[解決済み] なぜ依存型でないのか?
-
[解決済み] Haskellのマルチコアプログラミングはどうなっているのか?
-
[解決済み] Haskellでグラフはどのように表現するのか?