Я заметил, что apt
оценивает обновление, чтобы занять 48,1 МБ больше места при обновлении с 62.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.
Разница в размере, похоже, из нового двоичного файла v8_context_snapshot_generator
. Я извлек содержимое дэбов и сравнил их:
$ 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 - это движок JavaScript, используемый Chromium, и создание новых контекстов V8 занимает значительную часть времени, необходимого для загрузки веб-страницы. Проектный документ предполагает, что создание контекстов из моментальных снимков контекста V8 должно привести к ускорению в 3 раза, и в первую очередь это должно быть вспомогательной программой для создания моментальных снимков.
Тем не менее, чтение документа дизайна предполагает включение инструмента в пакет может быть несчастным случаем, и, следовательно, ошибка упаковки:
Как создать снимок?
Снимок создается во время сборки. Это означает, что снимок не зависит от пользователя.
Мы делаем исполняемый файл, который запускается на платформе хоста, чтобы сделать снимок. Он имитирует поведение LocalWindowProxy :: Initialize () для создания v8 :: Context и в результате выводит файл BLOB-объекта.
И:
Проблемы
- Эта функция увеличивает размер APK на Android до 1,6 МБ. Это может быть достаточно большим, чтобы отменить победу.
- Android не имеет расширений
- Эта функция может увеличить объем дискового ввода-вывода и использование памяти.
Подразумевается, что v8_context_snapshot_generator
должен выполняться во время сборки пакета, а не в отдельных пользовательских системах. И относительно небольшой прогнозируемый рост для Android предполагает, что он не включает в себя инструмент 44 МБ.