The OpenNET Project / Index page

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



"Релиз языка программирования Go 1.9"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз языка программирования Go 1.9"  +/
Сообщение от opennews (ok) on 26-Авг-17, 09:36 
После шести месяцев разработки компания Google представила (https://blog.golang.org/go1.9) релиз  языка программирования Go 1.9 (http://golang.org), который позиционируется как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок.  Код проекта распространяется под лицензией BSD.


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

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


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

-  В язык добавлена возможность определения псевдонимов типов (https://golang.org/design/18130-type-alias), которая может оказаться востребована при проведении рефакторинга кода (https://talks.golang.org/2016/refactor.article) и постепенного перевода проектов на новые API. Например, при помощи конструкции "type T1 = T2" для существующего типа "T2" можно определить псевдоним с именем "T1" по аналогии с тем как имя "byte" является псевдонимом типа "uint8";

-  В состав включен новый пакет math/bits (https://golang.org/pkg/math/bits), предоставляющий функции для битовых операций и манипуляции беззнаковыми целыми числами с задействованием при возможности специальных инструкций CPU. Например, на системах x86-64 функция bits.TrailingZeros(x) будет выполняться с использованием инструкции BSF;-  В пакет sync добавлен новый тип Map (https://golang.org/pkg/sync#Map), который возможно применять в многопоточных приложениях. Данный тип в некоторых деталях отличается от штатного типа map, поэтому не предназначен для его прозрачной замены;-  В пакет testing добавлен новый метод Helper, применимый с объектами testing.T и testing.B. При помощи данного метода можно организовать вывод номера строки вызывающей функции при возникновении ошибки, вместо указания ссылки на фактический номер строки, из которой вызван метод t.Fatal;
-  В пакете time обеспеченно прозрачное отслеживание монотонного времени (время, прошедшее с определённого момента) для всех значений Time, что позволяет обеспечить надёжный расчёт разницы  между двумя значениями Time без влияния таких факторов как изменение времени или подстановка (https://www.opennet.ru/opennews/art.shtml?num=42528) лишней секунды.
-  Для ускорения процесса сборки реализована поддержка параллельной компиляции разных функций в пакете.

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


2. "Релиз языка программирования Go 1.9"  –13 +/
Сообщение от Аноним (??) on 26-Авг-17, 10:28 
geth (go ethereum) синхронизируется неделями, беспощадно насилуя систему. Вот она, производительность Go.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Релиз языка программирования Go 1.9"  –9 +/
Сообщение от Аноним (??) on 26-Авг-17, 10:43 
Так в наше время под "высокой производительностью компилируемых языков" подразумевают скорость на уровне джавы, что печально
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

47. "Релиз языка программирования Go 1.9"  +21 +/
Сообщение от Аноним (??) on 26-Авг-17, 18:44 
В подавляющем большинстве случаев проблема в алгоритме и структурах данных, а не в языке программирования. Нормальный программист на пхп напишет эффективнее, чем хипстер на си.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

63. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 27-Авг-17, 01:21 
Сервер на Go против сервера на Java говорит сам за себя 13ms против 52ms на прогретом окружении. Понятно что конечно ситуация синтетическая, но таки непонятно почему в пять раз медленее статический "Hello, world" отдает.
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

67. "Релиз языка программирования Go 1.9"  –2 +/
Сообщение от Аноним (??) on 27-Авг-17, 12:19 
Что тут непонятного? Нативный код против эмулятора.
Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

71. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 27-Авг-17, 12:38 
> Что тут непонятного? Нативный код против эмулятора.

Go у нас теперь эмулируется? Или у жабы отменили JIT?


Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

104. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 28-Авг-17, 16:59 
OK, нативный код против эмулятора с JIT.
Ответить | Правка | ^ к родителю #71 | Наверх | Cообщить модератору

88. "Релиз языка программирования Go 1.9"  –2 +/
Сообщение от лютый жабист__ on 28-Авг-17, 06:28 
> непонятно почему в пять раз медленее статический "Hello, world" отдает

C фороникса сбежал? Сделай нормальный бенчмарк, с кучей хотя бы с 10ГБ (а лучше 50-100) и хоть каким-то движением в ней. Сразу увидишь убогость go-йского non-compacting GC.

Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

73. "Релиз языка программирования Go 1.9"  –10 +/
Сообщение от Аноним (??) on 27-Авг-17, 12:55 
Подавляющее большинство алгоритмов - линейная последовательность с парой ветсвлений. Там ошибиться негде.
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

83. "Релиз языка программирования Go 1.9"  +1 +/
Сообщение от Аноним (??) on 27-Авг-17, 19:51 
Откуда же тогда берутся бажные программы? Рептилоиды баги в них запихивают?
Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

108. "Релиз языка программирования Go 1.9"  +/
Сообщение от rshadow (ok) on 28-Авг-17, 22:07 
В подавлющем большинстве софта алгоритмов раз два и обчелся. В основном БД, бизнес логика и интерфейс. И все это ляпают кто как умеет.
Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

6. "Релиз языка программирования Go 1.9"  +3 +/
Сообщение от funny.falcon on 26-Авг-17, 11:08 
Если программу писал криворукий кодер, значит язык виноват? Странная точка зрения.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

16. "Релиз языка программирования Go 1.9"  –6 +/
Сообщение от Аноним (??) on 26-Авг-17, 14:22 
Не правда. Над geth работает большая команда профессиональных разработчиков. На данный момент это самый популярные ethereum клиент. А иссурки висят, их много: https://github.com/ethereum/go-ethereum/issues?page=1&q=is&#...
Пофиксить синхронизацию никак не получается уже очень долго. Они уже добавили режим fast, добавили кэши, которые все выкручивают до запредельных значений, и все равно ситуацию это не спасает.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

42. "Релиз языка программирования Go 1.9"  +4 +/
Сообщение от funny.falcon on 26-Авг-17, 17:24 
> Не правда. Над geth работает большая команда профессиональных разработчиков. На данный
> момент это самый популярные ethereum клиент. А иссурки висят, их много:
> https://github.com/ethereum/go-ethereum/issues?page=1&q=is&#...
> Пофиксить синхронизацию никак не получается уже очень долго. Они уже добавили режим
> fast, добавили кэши, которые все выкручивают до запредельных значений, и все
> равно ситуацию это не спасает.

И что? Если проблема принципиально решается, и её не смогли решить - значит проблема в решальщиках.

Go в сравнении с сишечкой может отставать по производительности в 2-3 раза.
Если есть программа на C с вменяемой скоростью, и программа на Go остаёт от неё более чем в 5 раз, значит виноваты разрабы.

Нет такой программы на С? Тогда почему вы решили, что виновата Go ? Может изначально в etherium заложены такие не эффективные алгоритмы, что они на лшюбом языке будут тормозить?

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

109. "Релиз языка программирования Go 1.9"  +/
Сообщение от rshadow (ok) on 28-Авг-17, 22:11 
> в 2-3 раза.
> в 5 раз

Это уже уровень производительности скриптовых языков.

Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

21. "Релиз языка программирования Go 1.9"  –4 +/
Сообщение от Аноним (??) on 26-Авг-17, 14:34 
Одну нет, но совокупность программ вполне могут говорить о качествах языка. В данном конкретном случае версия 1.7.0 на подходе. Если разработчикам за столько времени и выпущенных версий не удалось решить проблему производительности, значит её корни лежат за пределами доступа разработчиков, в языке и/или применяемых библиотеках.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

41. "Релиз языка программирования Go 1.9"  +5 +/
Сообщение от funny.falcon on 26-Авг-17, 17:18 
Или в алгоритмах, которые эти разработчики пытаются реализовать или используют.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

15. "Релиз языка программирования Go 1.9"  +1 +/
Сообщение от лютый жабист__ on 26-Авг-17, 13:25 
А язык причём? На чём клиент btc написан? На сях небось. С нуля блокчейн качался больше недели

Дело в хайпе, а не тормозах яп

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

17. "Релиз языка программирования Go 1.9"  +1 +/
Сообщение от Аноним (??) on 26-Авг-17, 14:23 
Bitcoin core написан на с++, у него нет никаких проблем с синхронизацией.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

23. "Релиз языка программирования Go 1.9"  –2 +/
Сообщение от лютый жабист__ on 26-Авг-17, 14:48 
Проблем никаких, но 122гб блокчейна качается  8 дней
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

33. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от Аноним (??) on 26-Авг-17, 16:38 
Рад за вас, ethereum у меня синхронизируется без конца, вот уже 2 недели. При том всё медленнее и медленнее.
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

50. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 26-Авг-17, 19:05 
Ну и выкинь его.Взял какую-то какашку, а теперь жалуешься, что она воняет. Какашки всегда воняют, и о качестве того, чем они были до попадания в пищеварительную систему, это не говорит.
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

51. "Релиз языка программирования Go 1.9"  +/
Сообщение от Дегенератор on 26-Авг-17, 19:10 
140Gb месяц качал на 200 Мбит
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

119. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 29-Авг-17, 16:06 
Так надо же:
1. Базу блок-чейна хранить на ssd.
2. С опцией клиента -prune 2048
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

18. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 26-Авг-17, 14:25 
Они оптимизировали синхронизацию, теперь она занимает где-то 2 часа, зависит от системы.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

28. "Релиз языка программирования Go 1.9"  +1 +/
Сообщение от Sasha (??) on 26-Авг-17, 16:04 
В смысле 122 гига на моих 10 мегабитах будет выкачивать за 2-3 часа? огооо архиватор попова какой-то? или как это она так сжимает блокчейн, выкачивает, а потом у меня на компе распаковывает?
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

30. "Релиз языка программирования Go 1.9"  –8 +/
Сообщение от Аноним (??) on 26-Авг-17, 16:33 
10 мегабит - таких тарифов уже давно нет. У скайнета минимум 50 мегабит ненужных за 350 рублей. Если бы был у кого-то такиф 10 мегбит, я бы первый с радостью перешел на него.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

32. "Релиз языка программирования Go 1.9"  +14 +/
Сообщение от Аноним (??) on 26-Авг-17, 16:37 
> 10 мегабит - таких тарифов уже давно нет. У скайнета минимум 50

За МКАДом жизни нет!


Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

34. "Релиз языка программирования Go 1.9"  –3 +/
Сообщение от Аноним (??) on 26-Авг-17, 16:39 
Я за МКАДом, если чё. И тарифов 10 мегабит не существует лет 5, как DSL вымер.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

38. "Релиз языка программирования Go 1.9"  +2 +/
Сообщение от Аноним (??) on 26-Авг-17, 16:58 
> Я за МКАДом, если чё. И тарифов 10 мегабит не существует лет 5,

А причем тут тариф? Если максимально доступная скорость не превышает 10 мбит, то платить за большее глупо.

> как DSL вымер.

Угу, угу. Кое-где даже не родившись.


Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

75. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от Ilya Indigo (ok) on 27-Авг-17, 13:50 
Я вообще на PPPoE сижу отнюдь не по собственному желанию, а также приходится 150 руб/мес только за реальник платить, что для меня дикость, но выбора у меня нет.
При этом долгое время пакет rp-pppoe в openSUSE и SLES был тупо сломан и не работал нормально, пока я это не обнаружил и не взялся за его сопровождение.
А вы тут об отсутствии 10-ти Mb говорите и про то что вы за МКАДом.
Вопрос должен стоять в другим образам, а есть ли у Вашего провайдера тариф в 100 Mb и если есть, то почему Вы, наверняка имея не хилую ферму из видеокарт, не можете себе его позволить?
Но в место этого адекватного вопроса Вы несёте неадекватную чушь зажравшегося МКАДовца.
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

81. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от neverendingnevelny on 27-Авг-17, 19:00 
DSL еще жив. Причем не так далеко от мкада.
И это нетрудно - ведь когда кроме РТ нет провайдеров - зачем торопиться с оптикой?
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

36. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от Аноним (??) on 26-Авг-17, 16:43 
Провайдерам не выгодны такие низкоскоростные тарифы, т.к. трафик сейчас относительно дешевый, а 10 мегабит вполне достаточно для FullHD. Все бы подключались к таким тарифам. Поэтому сейчас только задранные по скорости тарифы по соответствующей плате.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

40. "Релиз языка программирования Go 1.9"  +6 +/
Сообщение от Аноним (??) on 26-Авг-17, 17:10 
> Провайдерам не выгодны такие низкоскоростные тарифы, т.к. трафик сейчас относительно дешевый,

Мля, откуда вы такие лезете, а?
Вы что, совсем не допускаете даже мысли о том, что кроме мегаполисов, абсолютно совсем внезапно, есть еще пригороды и всякая мелочь и тут уже как повезет и хре*овая инфраструктура тупо может не пропускать 50мбит?

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

58. "Релиз языка программирования Go 1.9"  +4 +/
Сообщение от Наноним on 26-Авг-17, 21:46 
Мля, откуда вы такие лезете, а?
Вы что, совсем не допускаете даже мысли о том, что кроме России, абсолютно совсем внезапно, есть ещё другие страны и тут уже как повезёт, на отшибе мира где-нибудь (Кипр, NZ) может быть и 1мб/с по ценам, которые вам и не снились (~70$/мес) огромным счастьем?
Развелось тут квасных диванных рассуждаторов. Лол.
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

60. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от лютый жабист__ on 26-Авг-17, 23:13 
И чё прикопались к скорости инета? МКАД, ЗАМКАД.

В случае с btc тупо канал не утилизируется. Или сеть перегружена или не масштабируется нормально. Торрентами 50 мегабит ест, bitcoin-qt телепается на 2-5 и хоть тресни. Реальный IP есть. Высовывать порт в инет? Щаз!

Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

68. "Релиз языка программирования Go 1.9"  +4 +/
Сообщение от Лис on 27-Авг-17, 12:33 
> телепается на 2-5 и хоть тресни. Реальный IP есть. Высовывать порт в инет? Щаз!

Лол, толку от твоего реального айпи если ты порт не высунул? ССЗБ.

Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

72. "Релиз языка программирования Go 1.9"  –2 +/
Сообщение от Аноним (??) on 27-Авг-17, 12:41 
> Мля, откуда вы такие лезете, а?
> Вы что, совсем не допускаете даже мысли о том, что кроме России,
> абсолютно совсем внезапно, есть ещё другие страны

Очередной клоун.

Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

57. "Релиз языка программирования Go 1.9"  +1 +/
Сообщение от Лис on 26-Авг-17, 21:06 
Попробуйте открыть входящие порты, заметил что разные блокчейны с закрытыми портами ведут себя не очень адекватно.
Блокчейн сама по себе не эффективная с точки зрения производительности технология.

К слову, как правило там внутри leveldb что не есть самая быстрая БД, но зато наиболее экономная по месту и в целом самая сбалансированная, если судить по этим тестам:
https://www.influxdata.com/benchmarking-leveldb-vs-rocksdb-v.../

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

114. "Релиз языка программирования Go 1.9"  –3 +/
Сообщение от iPony on 29-Авг-17, 11:11 
> geth (go ethereum) синхронизируется неделями,

А docker написан на go - и это один из самых фапабельных ПО, что я знаю.
Наверно дело не в бобине.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

120. "Релиз языка программирования Go 1.9"  +3 +/
Сообщение от _ (??) on 29-Авг-17, 17:07 
Мужду нами девочками - он только и ноден чтобы недо-лошади на него ... мнээээ ... фапали :-))) В продакшене (за редкими исклбчениями) - докер это боль! :-\  Впрочем _НЕ_ из за Go :) А из-за аффтарафф ...
Ответить | Правка | ^ к родителю #114 | Наверх | Cообщить модератору

124. "Релиз языка программирования Go 1.9"  +/
Сообщение от Led (ok) on 30-Авг-17, 00:44 
> А docker написан на go - и это один из самых фапабельных ПО, что я знаю.

Для пони и кобыла - невеста.

Ответить | Правка | ^ к родителю #114 | Наверх | Cообщить модератору

4. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от Крутой аноним on 26-Авг-17, 10:45 
> и обеспечивает возможность использования сборщика мусора.

А можно и не использовать сборщик мусора?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Релиз языка программирования Go 1.9"  +2 +/
Сообщение от funny.falcon on 26-Авг-17, 11:18 
>> и обеспечивает возможность использования сборщика мусора.
> А можно и не использовать сборщик мусора?

Есть много техник, позволяющих уменьшить кол-во создаваемого мусора.

В принципе, ни кто не мешает на чистом Go написать malloc-free. Просто со встроенными типами будет не легко работать.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

9. "Релиз языка программирования Go 1.9"  +/
Сообщение от trolleybus email on 26-Авг-17, 12:01 
Можно. Rust его и не использует
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

12. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 26-Авг-17, 13:02 
Никто не запрещает делать типы с выделением памяти под них через malloc.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

25. "Релиз языка программирования Go 1.9"  –4 +/
Сообщение от лютый жабист__ on 26-Авг-17, 14:52 
Если программа уровня хелловёлд, то гц не отработает даже. Если прога большая то гц это не минус, а плюс.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

64. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от pripolz email on 27-Авг-17, 08:44 
знаю 2 случая косяков, связанных со сборкой.
1 на джаве: в библиотеке jetty СМ просто не справлялся на больших нагрузках и со временем уводил программу в OOM.

2 на C#: сборщик освобождал то, что не должен был. Прогеры долго танцевали с бубном, пытаясь как-то это обойти. Обратились в техподдержку, и те сказали "да, мы знаем, что такой баг есть. КОГДА-НИБУДЬ починим"

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

84. "Релиз языка программирования Go 1.9"  +2 +/
Сообщение от Аноним (??) on 27-Авг-17, 19:54 
А при чём тут Go?
Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

89. "Релиз языка программирования Go 1.9"  –4 +/
Сообщение от лютый жабист__ on 28-Авг-17, 06:33 
> 1 на джаве: в библиотеке jetty СМ просто не справлялся на больших нагрузках и со временем уводил программу в OOM.

У жабовых GC максимальная скорость мусора сборки гигабайты в секунду. Если чё-то там где-то не успевало, вывод - прога генерила десятки гигабайт мусора в сек. Шо как бэ намекает на то, из чего сделан прогер 8)))

Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

91. "Релиз языка программирования Go 1.9"  +4 +/
Сообщение от Аноним (??) on 28-Авг-17, 11:04 
> У жабовых GC максимальная скорость мусора сборки гигабайты в секунду.

И он работает не переставая, или всё-таки даёт выполниться какому-то другому коду?

Ответить | Правка | ^ к родителю #89 | Наверх | Cообщить модератору

94. "Релиз языка программирования Go 1.9"  –3 +/
Сообщение от лютый жабист__ on 28-Авг-17, 11:22 
>> У жабовых GC максимальная скорость мусора сборки гигабайты в секунду.
> И он работает не переставая, или всё-таки даёт выполниться какому-то другому коду?

Не знаю как в GO, а вот жаба получается быстрее си в плане управления памятью. 8)

Т.к. сишники в основном потоке делают new и delete, reallocate итд для дефрагментации памяти, а жабка этим занимается в отдельных потоках, большая часть фаз сборки выполняется ПАРАЛЛЕЛЬНО с основной прогой. В отличие от могучего си...

Ответить | Правка | ^ к родителю #91 | Наверх | Cообщить модератору

98. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 28-Авг-17, 13:40 
Вопрос был не об этом. Эта фантастическая скорость в "гигабайты в секунду" — это когда gc запущен, так? А как часто он запускается, и какова средняя скорость сборки? Только её есть смысл сравнивать со скоростью замусоривания.
Ответить | Правка | ^ к родителю #94 | Наверх | Cообщить модератору

112. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от лютый жабист__ on 29-Авг-17, 05:22 
> Вопрос был не об этом. Эта фантастическая скорость в "гигабайты в секунду"
> — это когда gc запущен, так? А как часто он запускается, и какова средняя скорость сборки?

Если на самом деле интересно... С достаточно толстой задачи - распарсить 750ГБ XMLек и вытащить из них полезную инфу. GC срабатывает в среднем раз в 3 сек на 0.01-0.04 сек. Освобождает, как видишь 2ГБ за 0.02сек. Так что, получается что сборщик в среднем в секунду чистит 666МБ, тормозя прогу на 0.0066(6)сек.

[GC (Allocation Failure) [PSYoungGen: 2060768K->19907K(2088960K)] 7512698K->5471837K(7875584K), 0.0192799 secs] [Times: user=0.18 sys=0.01, real=0.02 secs]

Ответить | Правка | ^ к родителю #98 | Наверх | Cообщить модератору

103. "Релиз языка программирования Go 1.9"  +2 +/
Сообщение от Аноним84701 (ok) on 28-Авг-17, 16:16 
> Т.к. сишники в основном потоке делают new и delete,  reallocate итд для дефрагментации памяти
>  сишники  ... new и delete, reallocate  ... дефрагментации памяти

Я правильно понимаю, что и все остальные рассуждения и "аргументы" такого же "качества"?

Ответить | Правка | ^ к родителю #94 | Наверх | Cообщить модератору

111. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от лютый жабист__ on 29-Авг-17, 04:46 
>> Т.к. сишники в основном потоке делают new и delete,  reallocate итд для дефрагментации памяти сишники  ... new и delete, reallocate  ... дефрагментации памяти
> Я правильно понимаю, что и все остальные рассуждения и "аргументы" такого же "качества"?

У тебя этим занимается специальный класс в отдельном потоке? Наверное называется он MyNotGarbageCollector ? :)))))

Ответить | Правка | ^ к родителю #103 | Наверх | Cообщить модератору

113. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 29-Авг-17, 10:17 
В сишечке нет классов, new и delete.
Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

115. "Релиз языка программирования Go 1.9"  –2 +/
Сообщение от лютый жабист__ on 29-Авг-17, 12:04 
>В сишечке нет классов, new и delete.

Наиболее могучие сишники не умеют плюсики. Очень смешно...

Ответить | Правка | ^ к родителю #113 | Наверх | Cообщить модератору

116. "Релиз языка программирования Go 1.9"  +3 +/
Сообщение от Аноним (??) on 29-Авг-17, 13:43 
Наиболее лютые жабисты не видят разницы между C и C++. Очень грустно…
Ответить | Правка | ^ к родителю #115 | Наверх | Cообщить модератору

131. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от pripolz on 04-Сен-17, 18:04 
> У тебя этим занимается специальный класс в отдельном потоке? Наверное называется он
> MyNotGarbageCollector ? :)))))

Во первых, нормальные быстрые проги вообще в основном рантаймовом цикле ничего не выделяют и не освобождают, всё выделяется заранее, и освобождается при завершении работы класса.

В вторых - потоки не резиновые.

В третьих - как всегда пишешь на основе собственных размышлений и теории. Я тоже так могу, смотри: прежде чем ГЦ что-то освободит, он должен понять, что пора собственно это освобождать. Пока он будет понимать, мусор будет валить.

Далее, гигабайты в секунду - это вообще некорректные измерения. При чём тут гигабайты? Нужно считать кол-во системных вызовов, может он эти гигабайты один раз выделил разом, и затем освободил за пару микросекунд. И на какой машине? Короче, не позорься.

Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

110. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от Ilya (??) on 29-Авг-17, 03:49 
> C#: сборщик освобождал то, что не должен был. Прогеры долго танцевали с бубном,

Пять лет работаю с дотнетом, встречался с такими ситуациями только в руководствах. Но да, технически это возможно.

Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

46. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от Аноним (??) on 26-Авг-17, 18:35 
>> и обеспечивает возможность использования сборщика мусора.
> А можно и не использовать сборщик мусора?

Можно. Разрешаю.


Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

65. "Релиз языка программирования Go 1.9"  +2 +/
Сообщение от pripolz email on 27-Авг-17, 08:45 
> А можно и не использовать сборщик мусора?

Если крафтовое пиво обсохло на бороде

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от Аноним (??) on 26-Авг-17, 11:52 
> при этом код легко читается и воспринимается

.. если вы уже специалист по Go.

> Данный тип в некоторых деталях отличается от штатного типа map, поэтому не предназначен для его прозрачной замены

Вот она, расплата за отсутствие дженериков..

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Релиз языка программирования Go 1.9"  +2 +/
Сообщение от Аноним (??) on 26-Авг-17, 13:20 
>> Данный тип в некоторых деталях отличается от штатного типа map, поэтому не предназначен для его прозрачной замены
> Вот она, расплата за отсутствие дженериков..

Какая расплата и причем тут дженерики? Этот тип предназначен для постоянного набора ключей и сильно сливает стандартному по скорости добавления/удаления ключей. Странно было бы если бы не было никаких потерь из-за встроенных мютэксов.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Релиз языка программирования Go 1.9"  +4 +/
Сообщение от Аноним (??) on 26-Авг-17, 12:35 
Cектантов спросить забыли.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

37. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 26-Авг-17, 16:44 
Действительно. Причин предостаточно и вспоминать D для этого не нужно.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

55. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 26-Авг-17, 19:55 
Причин чего? Перестань разговаривать сам с собой.
Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

19. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от Аноним (??) on 26-Авг-17, 14:29 
Ух ты, оказывается, если переносить всё на свете на следующую строку и оставлять пробелы, код будет казаться объемнее!
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

20. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 26-Авг-17, 14:30 
Это разве показатель? Код на Go я понял, на D - нет, при том никогда не писал ни на том, на на другом. Почему D вдруг лучше?
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

27. "Релиз языка программирования Go 1.9"  +/
Сообщение от zz (??) on 26-Авг-17, 15:08 
А вот я как раз понял на D
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

22. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 26-Авг-17, 14:35 
Никто не мешает написать свою либу, чтобы было так же коротко, как на D.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

31. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним84701 (ok) on 26-Авг-17, 16:35 
> Никто не мешает написать свою либу, чтобы было так же коротко, как на D.

Не знаю, что там с либами в первом примере, но во втором – тот же "reduce"  заменяется банальным циклом на две-три строки по типу гошного.
И основной упор там, как я понял, как раз таки  на демонстрацию экономии массы лишних телодвижений (с сохранением строгой типизации и соотв. возможности оптимизации компилятором) с помощью дженериков.


Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

48. "Релиз языка программирования Go 1.9"  +1 +/
Сообщение от Аноним (??) on 26-Авг-17, 18:59 
~~Абстрактный полиморф~~генерики уже завезли?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

53. "Релиз языка программирования Go 1.9"  –5 +/
Сообщение от Аноним (??) on 26-Авг-17, 19:25 
Зачем они? Научись использовать интерфейсы.
Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

96. "Релиз языка программирования Go 1.9"  –4 +/
Сообщение от Аноним (??) on 28-Авг-17, 11:48 
^ Gо-шники во всей красе. "генерики ни нужны, будем копипастить и костылить интерфейсами"
Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

101. "Релиз языка программирования Go 1.9"  –2 +/
Сообщение от Аноним (??) on 28-Авг-17, 15:38 
И ты учись. Когда научишься, копипастить не придётся.
Ответить | Правка | ^ к родителю #96 | Наверх | Cообщить модератору

102. "Релиз языка программирования Go 1.9"  –2 +/
Сообщение от Аноним (??) on 28-Авг-17, 15:40 
> ^ Gо-шники во всей красе. "генерики ни нужны, будем копипастить и костылить
> интерфейсами"

Кстати, накручивание плюсиков-минусиков к комментам настолько же бессмысленно, как и копипастинг кода.

Ответить | Правка | ^ к родителю #96 | Наверх | Cообщить модератору

105. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от Аноним (??) on 28-Авг-17, 19:09 
Вопрос не в том нужны ли они. А в том, что если ты хочешь сколотить обычный табурет, то нет смысла использовать шурупы что бы в будущем его можно было разобрать. Задача сделать дешевый и простой табурет.
Ответить | Правка | ^ к родителю #96 | Наверх | Cообщить модератору

107. "Релиз языка программирования Go 1.9"  +2 +/
Сообщение от Аноним (??) on 28-Авг-17, 20:23 
Да нет, тут дело в другом. В Go принципиально отсутствуют инструменты, позволяющие делать одно и то же. Есть шурупы, но только под крестовую отвёртку. В некоторых других языках дают полный ассортимент — и под плоскую отвёртку, и под шестигранник, и под всякие звёздочки, и с левой резьбой… В итоге приходится для разработчиков сочинять всякие политики, какими шурупами надлежит пользоваться, чтобы не приходилось с собой всегда полный набор инструментов таскать (см. например https://google.github.io/styleguide/cppguide.html). В случае Go язык сразу создаётся вместе с политикой, и ничего, политике не соответствующего, в нём просто нет.
Ответить | Правка | ^ к родителю #105 | Наверх | Cообщить модератору

59. "Релиз языка программирования Go 1.9"  –6 +/
Сообщение от pripolz email on 26-Авг-17, 22:57 
А что лучше, C# или Go?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

61. "Релиз языка программирования Go 1.9"  +10 +/
Сообщение от Led (ok) on 26-Авг-17, 23:15 
> А что лучше, C# или Go?

1C (1-е сентября).

Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

62. "Релиз языка программирования Go 1.9"  +/
Сообщение от ffirefox on 27-Авг-17, 00:13 
AngelScript


Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

85. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от vantoo (ok) on 27-Авг-17, 20:03 
Visual Basic 6.0, конечно.
Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

79. "Релиз языка программирования Go 1.9"  –2 +/
Сообщение от Аноним (??) on 27-Авг-17, 17:48 
Слушайте, отвалит от Golang типа "не производительный". Вон мейлру (извините) переходит на него потому как рукоплещет горутинам и производительности.
Руки распрямите.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

86. "Релиз языка программирования Go 1.9"  +3 +/
Сообщение от Led (ok) on 27-Авг-17, 20:21 
> мейлру (извините)

Нет, этому нет прощения.

Ответить | Правка | ^ к родителю #79 | Наверх | Cообщить модератору

87. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 28-Авг-17, 06:14 
Вообще то нет. Вы явно не видите леса за деревьями.
Ответить | Правка | ^ к родителю #79 | Наверх | Cообщить модератору

90. "Релиз языка программирования Go 1.9"  –2 +/
Сообщение от Аноним (??) on 28-Авг-17, 09:16 
Все эти языки приводят к распущенности. Программы на них тормозят не из-за того, что язык в какие-то 2-3 раза медленнее по своей структуре, а из-за того, что разработчика никак не волнует накладная стоимость применяемых структур и операций, которая в итоге вырастает многократно. Логика всех C#, Go, python,... программистов - язык сам всё оптимизирует. Но даже чисто физически это возможно далеко не всегда.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

92. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 28-Авг-17, 11:08 
Просто это не программисты. Человек, освоивший какой-то (любой) язык программирования, ещё не становится программистом. Надо хотя бы минимальные представления об алгоритмах иметь.
Ответить | Правка | ^ к родителю #90 | Наверх | Cообщить модератору

93. "Релиз языка программирования Go 1.9"  –4 +/
Сообщение от лютый жабист__ on 28-Авг-17, 11:17 
> Все эти языки приводят к распущенности. Программы на них тормозят не из-за
> того, что язык в какие-то 2-3 раза медленнее по своей структуре,
> а из-за того, что разработчика никак не волнует накладная стоимость применяемых
> структур и операций,

Может ещё не поздно тебя полечить... :)) Слушай сюда: коттедж лучше всего строить из кирпичей. Но это не значит, что можно построить небоскреб из кирпичей. А если небоскреб надо построить за 20 дней, то увы и ах, могучие каменщики, которые вручную мажут раствором и веревочкой меряют кривизну стены просто идут далеко-далеко.

Ответить | Правка | ^ к родителю #90 | Наверх | Cообщить модератору

106. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 28-Авг-17, 20:01 
> Слушай сюда: коттедж лучше всего строить из кирпичей.

Коттедж лучше всего строить из готовых блоков.
А аналогии лучше даже не пытаться приводить, все одно будет сравнение мягкого с теплым.

Ответить | Правка | ^ к родителю #93 | Наверх | Cообщить модератору

117. "Релиз языка программирования Go 1.9"  +/
Сообщение от dq0s4y71 (ok) on 29-Авг-17, 14:57 
> А если небоскреб надо построить за 20 дней...

"Небоскрёбы" (т.е. серьёзные программы уровня ядра ОС или компилятора) за 20 дней не пишутся, друг мой. За 20 дней пишутся гoвнoприложения для смартфона на Джаве, и для этого Джава замечательно подходит. А ядра ОС и пр. делают именно "каменщики", которые вручную мажут раствором и веревочкой меряют кривизну стены, да-да.

Ответить | Правка | ^ к родителю #93 | Наверх | Cообщить модератору

125. "Релиз языка программирования Go 1.9"  –2 +/
Сообщение от лютый жабист__ on 30-Авг-17, 05:18 
>> А если небоскреб надо построить за 20 дней...
> "Небоскрёбы" (т.е. серьёзные программы уровня ядра ОС или компилятора) за 20 дней
> не пишутся,

И эти люди кичатся сверхинтеллектом, переключаемость нулевая. Я написал про небоскрёбы и 20 дней. Китаёзы строят небоскребы за 20 дней. Что ещё непонятно?

Линукс на си пишут уже 26 лет потому что Торвальдс не осилил плюсы. Когда он помрёт и проектом начнет рулить другой, всё сильно поменяется. И верёвочки и каменщики могут внезапно пойти далеко далеко...

Ответить | Правка | ^ к родителю #117 | Наверх | Cообщить модератору

126. "Релиз языка программирования Go 1.9"  +1 +/
Сообщение от dq0s4y71 (ok) on 30-Авг-17, 16:19 
> Линукс на си пишут уже 26 лет потому что Торвальдс не осилил плюсы.

Ога, а JVM почему на Си написана? Потому что жабисты даже жабу не осилили?

Ответить | Правка | ^ к родителю #125 | Наверх | Cообщить модератору

127. "Релиз языка программирования Go 1.9"  –3 +/
Сообщение от лютый жабист__ on 31-Авг-17, 08:04 
>> Линукс на си пишут уже 26 лет потому что Торвальдс не осилил плюсы.
> Ога, а JVM почему на Си написана? Потому что жабисты даже жабу
> не осилили?

Для развития загугли list of java virtual machines

Потом на чём написан HotSpot

Потом на чём написан весь стек JavaEE и тонны жабобиблиотек.

Ответить | Правка | ^ к родителю #126 | Наверх | Cообщить модератору

128. "Релиз языка программирования Go 1.9"  +1 +/
Сообщение от dq0s4y71 (ok) on 31-Авг-17, 13:46 
> Для развития загугли list of java virtual machines

Загуглил.

https://en.wikipedia.org/wiki/List_of_Java_virtual_machines

Навскидку:

Avian на C++
CACAO на C++
HaikuVM на C/C++

Больше не проверял, остальные, наверное, на джаве..

> Потом на чём написан HotSpot

http://www.stroustrup.com/applications.html

"The HotSpot Java Virtual Machine is written in C++ (this is the leading edge, high performance replacement for Sun's "classic JVM" which was written in C)."

А есть хотя бы один компилятор С++, написанный на Джаве? А ядро ОС промышленного уровня? Ну ладно, профессиональный видео-редактор? Может быть, CAD?

Нетути.

Игрушечную ОС, студенческую поделку, bloatware-монстра написать - можно, а что-то действительно сложное, производительное, долгоживущее - нет. Такие дела...:(

Ответить | Правка | ^ к родителю #127 | Наверх | Cообщить модератору

129. "Релиз языка программирования Go 1.9"  –1 +/
Сообщение от лютый жабист__ on 01-Сен-17, 05:29 
>> Линукс на си пишут уже 26 лет потому что Торвальдс не осилил плюсы.
> Ога, а JVM почему на Си написана? Потому что жабисты даже жабу не осилили?
> Загуглил.

И где там си? сплошь плюсы.

>что-то действительно сложное, производительное, долгоживущее - нет

Школу закончишь, поумнеешь.

Ответить | Правка | ^ к родителю #128 | Наверх | Cообщить модератору

130. "Релиз языка программирования Go 1.9"  +2 +/
Сообщение от dq0s4y71 (ok) on 01-Сен-17, 16:11 
Слив, кагрццо, засчитан :)
Ответить | Правка | ^ к родителю #129 | Наверх | Cообщить модератору

97. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 28-Авг-17, 13:31 
Можете попробовать конкатенативную парадигму.
Ответить | Правка | ^ к родителю #90 | Наверх | Cообщить модератору

118. "Релиз языка программирования Go 1.9"  +/
Сообщение от dq0s4y71 (ok) on 29-Авг-17, 15:11 
Теоретически, правильно, но дело в том, что приоритеты за последние несколько десятилетий изменились. Машины стали быстрее, вместимее, более user-oriented (следовательно основное время тратят на ожидание ввода от пользователя), следовательно быстродействие и прожорливость стали не так важны. С другой стороны, стали более важны быстрота разработки и лёгкость поддержки приложений. Ну, и плюс программирование стало массовой профессией. Так что, естественно, что эти языки становятся мейнстримом для прикладного программирования.
Ответить | Правка | ^ к родителю #90 | Наверх | Cообщить модератору

95. "Релиз языка программирования Go 1.9"  –6 +/
Сообщение от Анонага on 28-Авг-17, 11:45 
lol no generics
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

99. "Релиз языка программирования Go 1.9"  +/
Сообщение от leap42 (ok) on 28-Авг-17, 15:17 
вот расскажите мне, пожалуйста, зачем вам обобщенное программирование в языке низкого уровня?
Ответить | Правка | ^ к родителю #95 | Наверх | Cообщить модератору

100. "Релиз языка программирования Go 1.9"  +3 +/
Сообщение от Аноним (??) on 28-Авг-17, 15:32 
> языке низкого уровня

Вы темой ошиблись, тут про Go.

Ответить | Правка | ^ к родителю #99 | Наверх | Cообщить модератору

121. "Релиз языка программирования Go 1.9"  –2 +/
Сообщение от Аноним (??) on 29-Авг-17, 18:06 
Язык Go разрабатывался как язык системного программирования для создания высокоэффективных программ, работающих на современных распределённых системах и многоядерных процессорах.
Он может рассматриваться как попытка создать замену языку Си.

Неужели язык Си плох тем, что там не поддерживается generic programming?
Тоже самое, я думаю, относится и к языку Go.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

122. "Релиз языка программирования Go 1.9"  +/
Сообщение от Аноним (??) on 29-Авг-17, 23:16 
> Язык Go разрабатывался как язык системного программирования
> Он может рассматриваться как попытка создать замену языку Си.

Где ты такую глупость вычитал?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

123. "Релиз языка программирования Go 1.9"  +2 +/
Сообщение от Аноним84701 (ok) on 30-Авг-17, 00:41 
>> Язык Go разрабатывался как язык системного программирования
>> Он может рассматриваться как попытка создать замену языку Си.
> Где ты такую глупость вычитал?

https://blog.golang.org/go-one-year-ago-today
> We set out to build a language for systems programming - the kinds of programs one might typically write in C or C++ - and
> we were surprised by Go’s utility as a general purpose language.

https://github.com/golang/go/wiki/GoForCPPProgrammers
> Go is a systems programming language intended to be a general-purpose systems language, like C++.
> These are some notes on Go for experienced C++ programmers.

https://golang.org/doc/faq
> Go was born out of frustration with existing languages and environments for systems programming.

Ответить | Правка | ^ к родителю #122 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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