Go 1.8 Идет Быстрее


Google Go все еще работает, и его последним пунктом назначения является новый 1.8. После более чем семи лет существования все успокоилось, и новая версия так же связана с консолидацией, как и все остальное.

Поскольку Go предназначен для системного языка программирования, эффективность должна занимать высокое место в списке желаемых свойств. Новая версия имеет значительно улучшенный бэкэнд компилятора:

“Серверная часть компилятора, представленная в Go 1.7 для 64-разрядной x86, теперь используется на всех архитектурах, и эти архитектуры должны значительно повысить производительность. Например, процессорное время, необходимое нашим тестовым программам, было сокращено на 20-30% в 32-разрядных системах ARM.” 

Конечно, улучшения для 64-разрядной x86 были в основном замечены в версии 1.6, но команда обещает дальнейшие успехи в будущем.

Сбор мусора также имеет решающее значение для системного языка, настолько, что некоторые могут утверждать, что автоматическая сборка мусора не играет никакой роли в системном языке. Проблема в том, что вы можете выполнять какую-то критическую системную задачу, и вдруг может начаться сбор мусора, и вся система отключится на неприемлемый период. В Go 1.8 паузы сбора мусора были значительно сокращены с менее чем 100 микросекунд в 1.7 до 10 микросекунд в 1.8.

Другие улучшения довольно незначительны:

HTTP-сервер добавляет поддержку HTTP/2 Push, позволяя серверам упреждающе отправлять ответы клиенту. Это полезно для минимизации задержки в сети за счет исключения обходов. HTTP-сервер также добавляет поддержку плавного завершения работы, позволяя серверам минимизировать время простоя, завершая работу только после обслуживания всех запросов, находящихся в полете.

Пакет сортировки был улучшен:

Теперь гораздо проще сортировать срезы: добавлена функция среза в пакете сортировки. Например, для сортировки фрагмента структур по полю их имени:sort.Slice(s, func(i, j int) bool { return s[i].Имя < s[j].Имя }) Go не сильно изменился с версии 1, и новая версия обратно совместима, и это сильная сторона. Работа над Go 1.9 началась, но не ждите ничего революционного. Большие проблемы в Go - это обобщения, исключения и утверждения-проблема в том, что у него их нет. Некоторые, вероятно, большинство, думают, что эти вещи не только не нужны, но и на самом деле ухудшат язык. Программисты из других языков не совсем уверены в этом, и все еще предпринимаются попытки изобрести способы добавления этих вещей способами, приемлемыми для программистов. Из этих трех именно отсутствие дженериков вызывает наибольшую турбулентность и дискуссии.  В настоящее время Go, похоже, переживает всплеск популярности. Это язык Тиобе 2016 года и все еще такой же популярный в 2017 году. Одна из возможных предполагаемых причин заключается в том, что Docker-это проект Go, и это достаточное доказательство того, что это язык, который можно использовать для реальных вещей.


Добавить комментарий