我注意到apt
估计升级需要48.1MB62.0.3202.94-0ubuntu0.16.04.1317
从 升级到会占用更多空间63.0.3239.84-0ubuntu0.16.04.1
。我浏览了一下apt changelog chromium-browser
,没有看到任何占用更多空间的内容。有没有快速查看文件变化的方法,apt
或者有谁知道或能找到原因?
$ apt list --upgradable
chromium-browser/xenial-updates,xenial-security 63.0.3239.84-0ubuntu0.16.04.1 amd64 [upgradable from: 62.0.3202.94-0ubuntu0.16.04.1317]
chromium-codecs-ffmpeg-extra/xenial-updates,xenial-security 63.0.3239.84-0ubuntu0.16.04.1 amd64 [upgradable from: 62.0.3202.94-0ubuntu0.16.04.1317]
$ sudo apt dist-upgrade
The following packages will be upgraded:
chromium-browser chromium-codecs-ffmpeg-extra
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 74.4 MB of archives.
After this operation, 48.1 MB of additional disk space will be used.
答案1
大小差异似乎来自一个新的v8_context_snapshot_generator
二进制文件。我提取了 debs 的内容并进行了比较:
$ ls -sSh 6*/usr/lib/chromium-browser
61/usr/lib/chromium-browser:
total 222M
132M chromium-browser 5.0M libGLESv2.so 1.5M libVkLayer_unique_objects.so 1.1M chrome_200_percent.pak 220K natives_blob.bin 4.0K WidevineCdm 4.0K v8_build_config.json
14M resources.pak 3.0M gn 1.5M libVkLayer_swapchain.so 784K libVkLayer_threading.so 152K mus_app_resources_200.pak 4.0K angledata 0 libs
13M ui.service 2.9M test_ime_driver.service 1.4M keyboard_resources.pak 772K chrome_100_percent.pak 128K views_mus_resources.pak 4.0K locales
9.8M icudtl.dat 2.6M libVkLayer_core_validation.so 1.2M brotli 576K libwidevinecdmadapter.so 92K mus_app_resources_100.pak 4.0K plugins
9.0M headless_lib.pak 1.9M libVkLayer_parameter_validation.so 1.2M flatc 508K libEGL.so 40K xdg-mime 4.0K swiftshader
6.7M font_service.service 1.6M libVkLayer_object_tracker.so 1.2M proto_zero_plugin 508K libwidevinecdm.so 36K xdg-settings 4.0K mus_app_resources_strings.pak
6.6M toolchain.ninja 1.5M snapshot_blob.bin 1.1M transport_security_state_generator 472K character_data_generator 16K chrome-sandbox 4.0K args.gn
63/usr/lib/chromium-browser:
total 270M
134M chromium-browser 3.0M test_ime_driver.service 1.2M snapshot_blob.bin 504K libEGL.so 44K chrome_100_percent.pak.info 4.0K WidevineCdm
44M v8_context_snapshot_generator 2.7M libVkLayer_core_validation.so 1.2M brotli 492K libwidevinecdm.so 44K chrome_200_percent.pak.info 4.0K angledata
14M resources.pak 2.6M gn 1.2M proto_zero_plugin 472K character_data_generator 40K xdg-mime 4.0K locales
13M ui.service 1.9M libVkLayer_parameter_validation.so 1.2M flatc 212K natives_blob.bin 36K views_mus_resources.pak.info 4.0K plugins
9.8M icudtl.dat 1.6M v8_context_snapshot.bin 1.1M transport_security_state_generator 188K headless_lib.pak.info 36K xdg-settings 4.0K swiftshader
9.1M headless_lib.pak 1.6M libVkLayer_object_tracker.so 1.1M chrome_200_percent.pak 156K resources.pak.info 16K chrome-sandbox 4.0K mus_app_resources_strings.pak
7.3M toolchain.ninja 1.5M libVkLayer_unique_objects.so 792K chrome_100_percent.pak 128K mus_app_resources_200.pak 12K mus_app_resources_strings.pak.info 4.0K args.gn
6.5M font_service.service 1.5M libVkLayer_swapchain.so 776K libVkLayer_threading.so 112K views_mus_resources.pak 12K mus_app_resources_100.pak.info 4.0K v8_build_config.json
5.3M libGLESv2.so 1.4M keyboard_resources.pak 576K libwidevinecdmadapter.so 72K mus_app_resources_100.pak 12K mus_app_resources_200.pak.info 0 libs
$ file 63/usr/lib/chromium-browser/v8_*
63/usr/lib/chromium-browser/v8_build_config.json: ASCII text, with no line terminators
63/usr/lib/chromium-browser/v8_context_snapshot.bin: data
63/usr/lib/chromium-browser/v8_context_snapshot_generator: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=99a63c90180ec5a32ea8861d44f405942ccbbdab, stripped
这似乎是一个旨在加速创建 V8 上下文的新工具。V8 是 Chromium 使用的 JavaScript 引擎,创建新的 V8 上下文占了网页加载时间的很大一部分。设计文档表明从 V8 上下文快照创建上下文应可将速度提高 3 倍,而这首先是一个用于创建快照的辅助程序。
但是,阅读设计文档建议将该工具包含在包中可能是一个意外,因此是一个包装错误:
如何创建快照?
快照是在构建时创建的。这意味着快照与用户无关。
我们制作一个在主机端平台上运行的可执行文件来制作快照。它模拟 LocalWindowProxy::Initialize() 的行为来创建 v8::Context,并输出 blob 文件作为结果。
和:
担忧
- 此功能会使 Android 上的 APK 大小增加 1.6MB。它可能大到足以取消胜利。
- Android 没有扩展
- 此功能可以增加磁盘 I/O 和内存使用量。
这意味着它将v8_context_snapshot_generator
在软件包构建时运行,而不是在单个用户系统上运行。而 Android 预计的相对较小的体积增长表明它不包含 44 MB 的工具。