Уменьшение размера файлов Javascript может снизить выбросы CO2.
Недавно я прочитал об этом в блоге Дэнни ван Кутена о сокращении выбросов CO2, которого он добился за счет уменьшения размера своих плагинов Wordpress.
Я был вдохновлен, чтобы увидеть, какую эффективность мы также можем сделать с помощью нашего плагина AddressFinder. Эта история следует за нашим расследованием, проблемами и тем, как мы смогли уменьшить размер нашего плагина на 25%.
Можем ли мы также уменьшить размер наших файлов?
Это заставило меня задуматься, может ли AddressFinder также внести аналогичные улучшения. Это согласуется с целями нашей компании по уменьшению воздействия на планету.
Можем ли мы уменьшить размер файла нашего кода Javascript и, следовательно, уменьшить выбросы, создаваемые сетевым трафиком и использованием ЦП?
Когда наши клиенты используют AddressFinder, они обычно загружают нашу библиотеку Javascript, которая запускает службу автозаполнения на своем веб-сайте. До сих пор эта библиотека представляла собой 23,5 КБ сжатого кода Javascript. Внутренности этой библиотеки включают в себя:
- Библиотека автозаполнения
- Бизнес-логика AddressFinder
- Кроссбраузерный HTTP-клиент
- Несколько полифилов Javascript
Мы поняли, что можно удалить HTTP-клиент и полифилы. Они были включены в библиотеку, чтобы служба могла работать в очень старых браузерах, включая Internet Explorer 6 (который, как ни странно, все еще используется).
Проблемы с поддержкой старых браузеров
Наше желание уменьшить размер полезной нагрузки Javascript при сохранении поддержки старых браузеров становилось проблемой. Требовался новый подход.
Решение состоит в том, чтобы заморозить библиотеку на текущей версии. Эта замороженная версия будет возвращена пользователям Internet Explorer (версии 6, 7, 8 и 9).
Это позволит нам отказаться от поддержки этих довольно древних браузеров в текущей версии, и в результате HTTP-клиент и полифилы могут быть удалены.
Результат
Нам удалось вырезать 5,9 КБ с конечной полезной нагрузкой 17,6 КБ (в сжатом виде). Процент экономии 25%
Расчет сокращения выбросов
Каждый месяц нашу основную библиотеку Javascript загружают 7,9 миллиона раз.
Общее сокращение загрузки в гигабайтах составляет:
7,9 млн * 5900 байт * 1 000 000 000 = 46,6 ГБ сетевого трафика
Сообщение в блоге Дэнни описывает подход для расчета количества энергии, необходимой для передачи 1 ГБ данных по современному сетевому соединению. Он выбрал среднюю цифру 0,5 кВтч электроэнергии, используемой на каждый ГБ.
46,6 ГБ сетевого трафика * 0,5 кВтч/ГБ = 23,3 кВтч электроэнергии
Большинство наших клиентов находятся в Австралии, поэтому мы будем использовать среднефедеральный показатель выбросов:
23,3 кВтч электроэнергии * 0,9 кг CO2 / кВтч = 21 кг CO2 каждый месяц
Как выглядит 21 кг СО2?
Дэнни сравнивает свои выбросы с выбросами при вождении своей машины. Как ни странно, его машина — Toyota Yaris, на которой Мэтт тоже ездит.
Yaris имеет эффективность 158,5 г CO2/км.
Чтобы выбросить 21 кг CO2, вам нужно проехать на Ярисе это расстояние:
21 кг CO2 / 0,1585 = 132,5 км каждый месяц
Экономия
Мы уменьшили полезную нагрузку Javascript примерно на 6 КБ. Каждый месяц наш сервис будет сокращать выбросы CO2 на эквивалент 132 км пробега. Неплохо.
И поскольку использование AddressFinder продолжает расти, сокращение Javascript на 6 КБ будет иметь большее значение.
Как говорит Дэнни:
самое главное — понять, что выбор, который мы делаем при разработке для Интернета, имеет последствия, которые действительно складываются в масштабе.