Уменьшение размера файлов Javascript может снизить выбросы CO2.

Недавно я прочитал об этом в блоге Дэнни ван Кутена о сокращении выбросов CO2, которого он добился за счет уменьшения размера своих плагинов Wordpress.

Я был вдохновлен, чтобы увидеть, какую эффективность мы также можем сделать с помощью нашего плагина AddressFinder. Эта история следует за нашим расследованием, проблемами и тем, как мы смогли уменьшить размер нашего плагина на 25%.

Можем ли мы также уменьшить размер наших файлов?

Это заставило меня задуматься, может ли AddressFinder также внести аналогичные улучшения. Это согласуется с целями нашей компании по уменьшению воздействия на планету.

Можем ли мы уменьшить размер файла нашего кода Javascript и, следовательно, уменьшить выбросы, создаваемые сетевым трафиком и использованием ЦП?

Когда наши клиенты используют AddressFinder, они обычно загружают нашу библиотеку Javascript, которая запускает службу автозаполнения на своем веб-сайте. До сих пор эта библиотека представляла собой 23,5 КБ сжатого кода Javascript. Внутренности этой библиотеки включают в себя:

  1. Библиотека автозаполнения
  2. Бизнес-логика AddressFinder
  3. Кроссбраузерный HTTP-клиент
  4. Несколько полифилов 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 КБ будет иметь большее значение.

Как говорит Дэнни:

самое главное — понять, что выбор, который мы делаем при разработке для Интернета, имеет последствия, которые действительно складываются в масштабе.