The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз языка программирования Go 1.8"
Отправлено opennews, 17-Фев-17 13:03 
После шести месяцев разработки компания Google представила (https://blog.golang.org/go1.8) релиз  языка программирования Go 1.8 (http://golang.org), который позиционируется как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок.  Код проекта распространяется под лицензией BSD.


Синтаксис Go основан на привычных элементах  языка Си с отдельными заимствованиями из языка Python. Язык достаточно лаконичен, но при этом код  легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов (http://golang.org/pkg/runtime/)), что позволяет добиться производительности, сопоставимой с программами на языке Си.

Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, в том числе предоставляя реализованные на уровне операторов средства для организации параллельных вычислений и  взаимодействия между параллельно выполняемыми методами. Язык также предоставляет встроенные средства защиты от выхода за допустимые области выделенных блоков памяти и обеспечивает возможность использования сборщика мусора.


Основные новшества (http://golang.org/doc/go1.8), представленные в выпуске Go 1.8:

-  Добавленный в прошлом выпуске (https://www.opennet.ru/opennews/art.shtml?num=44972) бэкенд компилятора SSA (Static Single Assignment), обеспечивающий прирост производительности оценивается в 5-35%, задействован для всех архитектур, а не только для x86_64. Собранные с использованием нового бэкенда программы, продемонстрировали в тестах снижение нагрузки на CPU на 20-30% для 32-разрядных систем ARM. Для x86_64 отмечается увеличение производительности до 10%. По сравнению с прошлым выпуском также проведена работа по увеличению производительности компиляции, которая на системах x86_64 стала выполняться на 15% быстрее;

-  Проведена работа по сокращению периодов активации сборщика мусора (https://golang.org/doc/go1.8#gc), приводящих к приостановке выполнения кода приложения. Сборщик мусора теперь осуществляет свою работу в рамках более коротких циклов, не превышающих 100 мс и обычно длящихся около 10 мс. Прекращено использование операций сканировния стека, приостанавливающих выполнение приложения;


-  В модуль с реализацией функций HTTP-сервера добавлена поддержка операций Push для HTTP/2, которые позволяют серверу инициировать обращение к клиенту.  В http-сервер также добавлен режим завершения работы (graceful shutdow) с ожиданием окончания обработки активных запросов;

-  В модуль context (https://golang.org/pkg/context/) добавлены средства для принудительного завершения соединений и использования таймаутов. Поддержка контекстов добавлена во многие штатные библиотеки, включая  database/sql, net (https://golang.org/pkg/net) и функцию Server.Shutdown из net/http;

-  В модуль sort добавлена новая функция Slice (https://golang.org/pkg/sort/#Slice), упрощающая сортировку данных с типом slice (https://blog.golang.org/go-slices-usage-and-internals). Например, для сортировки структур по полю "Name" можно выполнить:


   sort.Slice(s, func(i, j int) bool { return s[i].Name
-  Добавлена поддержка 32-разрядной архитектуры  MIPS (MIPS32r1) на Linux для систем big-endian (linux/mips) и little-endian (linux/mipsle);
-  Изменены требования к минимально поддерживаемым версиям: DragonFly 4.4.4, OpenBSD 5.9 и OS X 10.8;
-  Значительно улучшен порт для Plan 9, почти доведены до полноценного состояния сетевые функции.


URL: https://blog.golang.org/go1.8
Новость: http://www.opennet.ru/opennews/art.shtml?num=46067

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру