@gogolang

Страница 147 из 1630
Roman
24.02.2017
22:22:39
Я не про память по-прежнему

Semyon
24.02.2017
22:22:42
в приличных местах в документации к типу просто сразу пишут thread safe он, например, или нет

это я для примера

Roman
24.02.2017
22:23:33
в приличных местах в документации к типу просто сразу пишут thread safe он, например, или нет
Вот для примера: у человека в профайлере вылез на вершину гошный рантайм

Google
Roman
24.02.2017
22:23:55
Потому что создание гороутины довольно дорого

Semyon
24.02.2017
22:24:35
я себе сейчас пытаюсь представить, сколько горутин нужно заспавнить, чтобы рантайм вылез в топ

оно не так уж дорого, в конце концов

Anyway

Мой поинт относительно языка го и всего это чудесного мероприятия такой

1. Язык го, как язык, ужасно примитивный 2. Для тех целей, для которых он появился это отлично

Я вот с недавних пор на го пишу и мои цели полностью совпадают с целями Гугла

мне надо чтобы мой код могли читать и поддерживать много людей разного уровня подготовки

и тут ничего лучше го я придумать не могу

Valery
24.02.2017
22:28:23
Не знаю что тут за холивар

Но го — лучший язык

Phil
24.02.2017
22:28:28
Потому что создание гороутины довольно дорого
я вот человека не понял. он чегото прогнал

Valery
24.02.2017
22:28:38
Вы где-нибудь видели более милого талисмана?

Google
Valery
24.02.2017
22:28:49


Semyon
24.02.2017
22:28:50
в Plan 9

Рене Френч охуенная

Phil
24.02.2017
22:29:08
тебе надо поменять поведение накопипащенного
и слава Богу, если это надо сделать вручную

Semyon
24.02.2017
22:29:28
и слава Богу, если это надо сделать вручную
вручную в 10 местах или в одном

Roman
24.02.2017
22:29:31
Semyon
24.02.2017
22:29:39
о

к слову о талисманах

Phil
24.02.2017
22:29:52
вручную в 10 местах или в одном
в 10 вручную. это правильно

Semyon
24.02.2017
22:29:52
вы видели талисман нового проекта гугла?

Upspin



Это же шикарно!

Phil
24.02.2017
22:30:06
А что ты не понял?
собственно ничего

Semyon
24.02.2017
22:30:23
в 10 вручную. это правильно
Филип, я вот от природы туповат. Я могу в 9 местах поправить, а в 10 забыть

я хочу, чтобы конфлютор за меня думал в таких ситуациях

Valery
24.02.2017
22:31:02
Когда писал upspin всю ночь, а надо еще нарисовать талисман

Semyon
24.02.2017
22:31:17
Когда писал upspin всю ночь, а надо еще нарисовать талисман
по-моему это внебрачный сын гленды и страуса

Google
Roman
24.02.2017
22:31:27
собственно ничего
Что такое гороутина?

Вопрос вообще ко всем :)

Ivan
24.02.2017
22:32:32
Что такое гороутина?
https://tour.golang.org/concurrency/1

Roman
24.02.2017
22:33:41
кстати, говоря про Upspin, я правильно понял что это облегчает peer-to-peer file sharing?

Semyon
24.02.2017
22:34:32
Что такое гороутина?
это запакованный кусок компьютейшена, со стэком, который может выполниться

amirite?

причем там какой-то хитрый шедулинг на реальные треды

и какой-то хитрый шедулер в рамках трэда, который эти самые компьютейшены шатает

Roman
24.02.2017
22:35:34
https://tour.golang.org/concurrency/1
Спасибо, Кэп. А с точки зрения операционной системы? Как именно эта сущность представлена?

Semyon
24.02.2017
22:36:32
в рамках текущего трэда, подозреваю, что копированием

честно, не знаю деталей реализации

Roman
24.02.2017
22:37:17
https://tour.golang.org/concurrency/1
Если я захочу гороутину сереализовать и передать через сокет?

Roman
24.02.2017
22:37:25
http://blog.nindalf.com/how-goroutines-work/

Semyon
24.02.2017
22:37:42
Если я захочу гороутину сереализовать и передать через сокет?
кстати в моей картине мира тебе ничего не помешает это сделать

это же просто кусок байт за интерфейсом

Semyon
24.02.2017
22:39:31
это зачем?
Чтобы посчитать твой компьютейшн на еба-кластере вместо контрольной ноды

Скалабилити, все вот это

Roman
24.02.2017
22:40:37
Google
Roman
24.02.2017
22:40:40
Чтобы посчитать твой компьютейшн на еба-кластере вместо контрольной ноды
зачем рутину то сериализировать? сериализируй кусок данных, запусти инстанцию программы на каждом из узлов сети, передавай сериализированные куски данных, зачем gorotuine то передавать, это нонсенс

Roman
24.02.2017
22:41:23
это зачем?
Например, передать на другую ноду или другой процесс

Roman
24.02.2017
22:42:00
Например, передать на другую ноду или другой процесс
дак передай кусок данных, а на другой ноде go handler(data)

Roman
24.02.2017
22:43:18
дак передай кусок данных, а на другой ноде go handler(data)
Это закат солнца вручную. Но изначально вопрос был не про это. А про то, что создание гороутины - это тоже аллокация

Roman
24.02.2017
22:44:53
Это закат солнца вручную. Но изначально вопрос был не про это. А про то, что создание гороутины - это тоже аллокация
ну верно, но опять-же не всегда! Go при завершении старых гоурутин способен их заново использовать, он сразу не восбождает

Roman
24.02.2017
22:47:21
что не освобождает?
ресурсы, Go использует старые рутины заново, не всегда он под новую рутину заново память выделяет

Ivan
24.02.2017
22:50:11
а можешь ссылку дать на почитать?

Roman
24.02.2017
23:01:05
а можешь ссылку дать на почитать?
звучит комично, но не могу найти где я это слышал/читал, помоему это было презентационное видео

а можешь ссылку дать на почитать?
по "golang goroutine reuse memory" тоже не могу найти, помоему это в каком то go-talk'е было сказано и мной услышано, видимо это такие глубокие дебри языка в которые особо никто не лезит

Ivan
24.02.2017
23:13:57
я вот тоже

Roman
24.02.2017
23:19:01
я вот тоже
печалька, может быть по видео презентациям поискать (на тему golang performance)

Semyon
25.02.2017
05:56:12
Ты про паттерн Map-Reduce слышал при обработке распределенных данных?

Мне Map функции все возможные в мире сразу надо на каждой ноде определить?

Задача "засериализовать компьютейшн и отправить по сети" это достаточно частый кейз, тащемта

Roman
25.02.2017
05:58:01
Задача "засериализовать компьютейшн и отправить по сети" это достаточно частый кейз, тащемта
никогда не решал задачи столь динамичного характера, мне это не нужно

Semyon
25.02.2017
05:58:18
Roman
25.02.2017
05:59:39
но, согласись, это не значит, что их нет
они то конечно есть, но уж точно их не выше описаным способом решать типа "засериализировать goroutine", уж не знаю можно ли засериализировать lambda функцию в Go, но сериализировать поток это нонсенс

Google
Semyon
25.02.2017
06:00:41
Горутина это не поток

Поток это канал

И его не надо сериализовать, его нужно просто научить другому транспорту

И это, насколько я понимаю, одна из самых ожидаемых фич в го :)

Roman
25.02.2017
06:01:47
Горутина это не поток
я имеею ввиду thread, (thread на русский язык вроде как "поток" переводится). чисто технически goroutine = green thread

Semyon
25.02.2017
06:01:48
tcp transport for channels

Ivan
25.02.2017
06:01:59
Ну типа рабитmq ?

Roman
25.02.2017
06:02:22
tcp transport for channels
в чём проблема воплотить?? у меня асинхронный сервер по пободной схеме работает, там WebSockets но разницы нет

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

Semyon
25.02.2017
06:12:34
я имеею ввиду thread, (thread на русский язык вроде как "поток" переводится). чисто технически goroutine = green thread
у меня, кстати, в голове никогда thread как "поток" не переводилось, скорее как "нить", а чаще всего тупо "тред" :)

поэтому с потоком ассоциируются потоки

сорян

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

Roman
25.02.2017
06:14:06
у меня, кстати, в голове никогда thread как "поток" не переводилось, скорее как "нить", а чаще всего тупо "тред" :)
хмм, я просто не из России, не знаю как действительно русские thread'ы называют.. но называть их нитями довольно странно по моему

Semyon
25.02.2017
06:14:18
поэтому обычно их называют тредами

Roman
25.02.2017
06:16:39
поэтому обычно их называют тредами
просто я стараюсь русский с английским не мешать, а то как увижу: "аллоцировать мэм для компьютэйшна ради перформенса" аж глаза режит, почему не "выделить память на вычисления ради производительности" ?

тоже самое с "трэдами"

https://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C всё-таки можно thread потоком называть ?

https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%82%D0%BE%D0%BA_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F

Semyon
25.02.2017
06:34:44
Да, всё так

Но путаница ужасная постоянно из-за русификации бывает

Roman
25.02.2017
06:40:03
Но путаница ужасная постоянно из-за русификации бывает
then it's better to talk in english when talking 'bout any kind of IT and programming stuff

Страница 147 из 1630