<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Релиз языка программирования Go 1.8]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=38538</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=38538&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Релиз языка программирования Go 1.8».]]></description>
		<lastBuildDate>Fri, 17 Feb 2017 05:44:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Релиз языка программирования Go 1.8]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=452399#p452399</link>
			<description><![CDATA[<p><br />&nbsp; &nbsp; После шести месяцев разработки компания Google представила релиз&nbsp; языка программирования Go 1.8, который позиционируется как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок.&nbsp; Код проекта распространяется под лицензией BSD.&nbsp; &nbsp; &nbsp; &nbsp;Синтаксис Go основан на привычных элементах&nbsp; языка Си с отдельными заимствованиями из языка Python. Язык достаточно лаконичен, но при этом код&nbsp; легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов), что позволяет добиться производительности, сопоставимой с программами на языке Си.&nbsp; &nbsp; Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, в том числе предоставляя реализованные на уровне операторов средства для организации параллельных вычислений и&nbsp; взаимодействия между параллельно выполняемыми методами. Язык также предоставляет встроенные средства защиты от выхода за допустимые области выделенных блоков памяти и обеспечивает возможность использования сборщика мусора.&nbsp; &nbsp; &nbsp; Основные новшества, представленные в выпуске Go 1.8:&nbsp; &nbsp; &nbsp;Добавленный в прошлом выпуске бэкенд компилятора SSA (Static Single Assignment), обеспечивающий прирост производительности оценивается в 5-35%, задействован для всех архитектур, а не только для x86_64. Собранные с использованием нового бэкенда программы, продемонстрировали в тестах снижение нагрузки на CPU на 20-30% для 32-разрядных систем ARM. Для x86_64 отмечается увеличение производительности до 10%. По сравнению с прошлым выпуском также проведена работа по увеличению производительности компиляции, которая на системах x86_64 стала выполняться на 15% быстрее;&nbsp; &nbsp; &nbsp;Проведена работа по сокращению периодов активации сборщика мусора, приводящих к приостановке выполнения кода приложения. Сборщик мусора теперь осуществляет свою работу в рамках более коротких циклов, не превышающих 100 мс и обычно длящихся около 10 мс. Прекращено использование операций сканировния стека, приостанавливающих выполнение приложения;&nbsp; &nbsp; &nbsp; &nbsp;В модуль с реализацией функций HTTP-сервера добавлена поддержка операций Push для HTTP/2, которые позволяют серверу инициировать обращение к клиенту.&nbsp; В http-сервер также добавлен метод&nbsp; Server.Shutdown для завершения соединения с ожиданием окончания обработки запроса и метод Server.Close для незамедлительного обрыва соединения;&nbsp; &nbsp; &nbsp;В модуль context добавлены средства для принудительного завершения соединений и использования таймаутов. Поддержка контекстов добавлена во многие штатные библиотеки, включая&nbsp; database/sql, net и функцию Server.Shutdown из net/http;&nbsp; &nbsp; &nbsp;В модуль sort добавлена новая функция Slice, упрощающая сортировку данных с типом slice. Например, для сортировки структур по полю &quot;Name&quot; можно выполнить:&nbsp; &nbsp; &nbsp; &nbsp;sort.Slice(s, func(i, j int) bool { return s[i].Name &lt; s[j].Name })&nbsp; &nbsp; Проведена оптимизация модулей&nbsp; bytes, crypto/aes, crypto/cipher, crypto/elliptic, crypto/sha256, crypto/sha512, encoding/asn1, encoding/csv, encoding/hex, encoding/json, hash/crc32, image/color, image/draw, math, math/big, reflect, regexp, runtime, strconv, strings, syscall, text/template и unicode/utf8;&nbsp; &nbsp; &nbsp;Добавлена поддержка 32-разрядной архитектуры&nbsp; MIPS (MIPS32r1) на Linux для систем big-endian (linux/mips) и little-endian (linux/mipsle);&nbsp; &nbsp; &nbsp;Изменены требования к минимально поддерживаемым версиям: DragonFly 4.4.4, OpenBSD 5.9 и OS X 10.8;&nbsp; &nbsp; &nbsp;Значительно улучшен порт для Plan 9, почти доведены до полноценного состояния сетевые функции.&nbsp; &nbsp; <br />&nbsp; &nbsp; Источник: <strong>http://www.opennet.ru/opennews/art.shtml?num=46067</strong><br />&nbsp; &nbsp; <br /><a href="http://www.opennet.ru/opennews/art.shtml?num=46067">_источник</a></p>]]></description>
			<author><![CDATA[null@example.com (R2-D2)]]></author>
			<pubDate>Fri, 17 Feb 2017 05:44:40 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=452399#p452399</guid>
		</item>
	</channel>
</rss>
