Как оптимизировать или деоптимизировать файл Firefox OMNI.JA

Разработка веб-браузера, такого как Firefox, не так проста, как кажется. Требуется, чтобы команда блестящих программистов работала вместе, создавая эффективный и быстрый веб-браузер, который мы можем использовать бесплатно. Для веб-браузера Firefox одним из главных улучшений в производительности стало уменьшение количества открытых файлов. Начиная с версии 4 Firefox, многие файлы, особенно javascripts, которые раньше находились в папке компонентов, упаковываются в один файл с именем omni.jar, и это эффективно уменьшает дисковый ввод-вывод в 30-100 раз. Omni.jar был переименован в omni.ja начиная с версии 10, чтобы предотвратить повреждение Firefox.

Это улучшение вызвало некоторые проблемы у некоторых пользователей, которые предпочитают изменять основные файлы Javascript для настройки вместо использования надстроек или расширений. Если они используют более старую версию 7-Zip, например 9.20, для открытия файла omni.ja, 7-Zip сообщит об ошибке, говоря:Не могу открыть файл omni.ja как архив”, Хотя сообщалось, что файл omni.ja на самом деле является ZIP-файлом.

не могу открыть файл omni.ja как архив

Простой обходной путь – переименовать расширение файла omni.ja в .zip, и Windows сможет открывать и извлекать файлы. Затем они могут изменить файлы в соответствии с их потребностями, упаковать их в ZIP-файл и, наконец, переименовать расширение файла в .ja. Хотя этот метод работает, он не рекомендуется из-за дополнительной оптимизации исходного файла omni.ja, которая может привести к дополнительному сокращению дискового ввода-вывода в 2-3 раза.
Оптимизированный файл omni.ja не является стандартным форматом ZIP, поскольку макет был изменен. Обычно индекс помещается в конец файла, но оптимизированный файл omni.ja размещает индекс в начале файла, чтобы минимизировать поиск по диску и максимизировать преимущества чтения вперед. По этой причине некоторые программы разборчивого архиватора, такие как более старая версия 7-Zip 9.20, не могут открыть omni.ja, даже если это ZIP-файл. Запуск функции «тестового архива» в 7-Zip покажет, что она обнаружила ошибку в заголовках.

ошибка заголовков omnija

К счастью, автор 7-Zip добавил поддержку, чтобы открыть оптимизированный файл omni.ja в последней версии. Хотя у вас нет проблем с открытием omni.ja с последней версией 7-Zip, автоматическое обновление отредактированных файлов невозможно. Как вы можете видеть на скриншоте ниже, мы попытались отредактировать файл из omni.ja, и 7-Zip выдает ошибку, сообщающую, что он доступен только для чтения, когда он пытается обновить отредактированный файл в архиве.

невозможно обновить файл только для чтения

Теперь мы покажем вам, как деоптимизировать оптимизированный файл omni.ja, чтобы вы могли легко редактировать любые файлы непосредственно из 7-Zip, а затем повторно оптимизировать его, чтобы не потерять дополнительное сокращение дискового ввода-вывода в 2-3 раза.

1. Скачать ActivePython и установить. Если вы работаете с 64-разрядной версией Windows, обязательно загрузите x64-версию ActivePython.

2. Загрузите обновленный optimizejars.py скрипт python, который был исправлен для работы с omni.ja

3. Для простоты поместите файл omni.jar и optimizejars.py на рабочий стол. Запустите командную строку, нажав кнопку Пуск, введите CMD и нажмите клавишу ввода. Измените каталог на рабочий стол, набрав «cd desktop», нажмите Enter и введите команду ниже, чтобы деоптимизировать файл omni.ja.

optimizejars.py –deoptimize ./ ./ ./

деоптимизировать omni.ja

Кроме того, вы также можете скопировать файл optimizejars.py в каталог, где находится файл omni.ja, который обычно находится в C: Program Files Mozilla Firefox , а затем запустить командную строку от имени администратора, изменить каталог на путь, где указан omni. ja находится и выполните команду deoptimize, показанную выше. Если после выполнения команды deoptimize вы получаете разрешение IOError 13, в котором отказано в разрешении, это означает, что командная строка не запускается от имени администратора.

После успешной деоптимизации файл omni.ja становится стандартным ZIP-файлом, который может быть открыт любой программой-архиватором. После внесения изменений в файлы внутри omni.ja, вы должны повторно оптимизировать файл для дополнительного повышения производительности, введя немного другую команду, показанную ниже.

optimizejars.py –optimize ./ ./ ./

Ниже приведено доказательство оптимизации и деоптимизации для файла omni.ja. На рисунке ниже показан оригинальный оптимизированный файл omni.ja, открытый с помощью Notepad, стандартного текстового редактора, встроенного в операционную систему Windows. В начале заголовка файла отображается PK, который является стандартной подписью для ZIP-файла. Вы найдете много путей к файлам, которые являются индексами файлов в архиве также в начале файла omni.ja.

omnija оптимизированный блокнот

Теперь давайте взглянем на деоптимизированный файл omni.ja в Блокноте. Мы прокрутили файл до конца файла, и, как вы можете видеть, индексы файлов размещаются здесь, а не в начале. Если вы посмотрите на начало файла, вы также должны увидеть, что он начинается с PK.

омния деоптимизированный блокнот

Учтите, что всякий раз, когда Firefox обновляется, весьма вероятно, что файл omni.ja будет обновляться, а также перезаписывать ваш измененный файл omni.ja. Это одна из основных причин, по которой следует использовать расширения вместо изменения основных файлов Firefox, поскольку они сохраняют изменения, позволяя вам легко поддерживать свою версию Firefox в актуальном состоянии.