3

Snap webappをコンパイルすると (本番サーバーにデプロイするため)、19MB になります。何を与える?これは正常ですか?私は何か間違ったことをしていますか?

私のサイトには 3 つの静的ページしかなく、基本的にsnap の init projectです。

4

1 に答える 1

2

Snap は多くの依存関係をプルしていると思います。残念ながら (初期) コンパイル時間に影響を与えるこの問題の解決策の 1 つは、プロジェクトが依存するライブラリを --split-objs オプションでインストールすることです。これにより、大量の異なるオブジェクトが生成されますが、最終的な実行可能ファイルは 2 ~ 4 分の 1 など、はるかに小さくなります。

$ cabal install --enable-split-objs

ライブラリが既にインストールされている場合は、最初にそれらを削除するか、新しい GHC をインストールするか、独自のパッケージ セットでサンドボックスを使用する必要があります。

コマンドも使用する必要がありますstrip(場合によっては、cabal がこれを自動的に実行します)。

さらにupx、実行可能ファイルの圧縮に使用して、最終的rsyncに最小限の異なる実行可能ファイルをサーバーにアップロードすることを検討することもできます。

共有ライブラリ ( cabal install --enable-shared) を使用すると、ここで役立つ場合とそうでない場合があります。そのオプションは試していません。

于 2012-07-03T08:10:12.147 に答える