4

を実行するvcbuild.bat Releaseと、次のようなlibディレクトリが作成されます。

$ ls -1Ssh Release/lib/
total 303M
263M v8_base.lib
 22M openssl.lib
7.2M v8_snapshot.lib
6.2M v8_nosnapshot.lib
4.8M uv.lib
480K zlib.lib
 88K http_parser.lib

デバッグははるかに優れていますが、それでも:

$ ls -1Ssh Debug/lib/
total 102M
 83M v8_base.lib
 14M openssl.lib
2.1M uv.lib
1.6M v8_snapshot.lib
1.3M v8_nosnapshot.lib
352K zlib.lib
 80K http_parser.lib

これについて私が理解していない2つのこと:

  • なぜv8はこれが大きいのですか?
  • デバッグビルドではるかに小さいlibファイルが生成されるのはなぜですか?

私はWindows764ビットを使用しています。

編集ホストマシンのアーキテクチャに関係なく、デフォルトtarget_archia32ではなく、であることがわかりました。x64したがって、上記の数値は32ビットビルドを示しています。64ビットの数値は少し大きいです(309M / 128M)。

4

3 に答える 3

3

v8 がこれほど大きいのはなぜですか?

おそらく、その依存関係と機能が原因でしょうか? お気に入り:

$ ls -1Ssh Release/obj/v8_base/|head -15
total 264M
5.1M hydrogen.obj
4.7M objects.obj
4.6M lithium-codegen-ia32.obj
4.4M lithium-ia32.obj
4.3M runtime.obj
4.3M hydrogen-instructions.obj
4.2M lithium-allocator.obj
4.1M lithium-gap-resolver-ia32.obj
3.7M compiler.obj
3.7M isolate.obj
3.5M v8.obj
3.4M lithium.obj
3.3M heap.obj
3.3M api.obj

それでもちょっと大きいような…。

デバッグ ビルドで生成される lib ファイルがはるかに小さいのはなぜですか?

おそらく、私が見つけたこれらの速度の最適化common.gypiですか?

  'Release': {
    ...
    'msvs_settings': {
      'VCCLCompilerTool': {
        'RuntimeLibrary': 0, # static release
        'Optimization': 3, # /Ox, full optimization
        'FavorSizeOrSpeed': 1, # /Ot, favour speed over size
        'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible
于 2012-08-08T03:31:03.743 に答える
2

なぜ V8 エンジンが Windows でこれほど大きなビルドをビルドしているのかを理解するのにしばらく時間がかかりました。

V8 をビルドするときに使用できるオプション -D"component=shared" を使用して、より小さい lib v8.lib (~250kb) と必要な dll V8.dll (~12mb)、icui18n.dll (~2.5mb)、 icuuc.dll (~1.5MB)。

From the V8 Directory:
third_party\python_26\python.exe build\gyp_v8 -G msvs_version=2010 -Dtarget_arch=x64 -D"component=shared" -G 
于 2014-02-25T03:01:32.540 に答える
-2

本当の答えは、「リリース」ビルド オプションを選択しなかったことです。リリースモードはサイズを大幅に削減します。

于 2013-10-04T03:26:40.383 に答える