Тёмный

Антон Сергеев, «Go под капотом» 

Kolesa Group
Подписаться 9 тыс.
Просмотров 87 тыс.
50% 1

Kolesa Go Meetup:
Доклад о том, как работает go изнутри, и чем его принципы отличаются от других популярных языков. Что нужно знать о работе компилятора, операционной системы и компьютера, чтобы пользоваться go эффективно. Также рассмотрим, как устроены горутины, и почему в языке есть несколько способов сделать одно и то же, когда речь идет о конкурентности.
Полезные ссылки:
habr.com/ru/company/mailru/bl...
rakyll.org/codegen/ • GopherCon 2018: Kavya ... morsmachine.dk/go-scheduler
www.ardanlabs.com/blog/2018/0...
blog.cloudflare.com/how-stack...
dave.cheney.net

Опубликовано:

 

11 ноя 2019

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 85   
@alexpanov4678
@alexpanov4678 2 года назад
Спасибо! С нетерпением ждем новых докладов Антона!)
@user-mt9bq2xe1z
@user-mt9bq2xe1z 4 года назад
Очень интересно. Спасибо
@IK-ow2zk
@IK-ow2zk Год назад
С первых слов понятно, что лекция будет огненная! Спасибо большое за доклад!
@bakla_zhan
@bakla_zhan 10 месяцев назад
Спасибо большое за интересный доклад!
@FUNMASHIN
@FUNMASHIN 9 месяцев назад
Отличный доклад!
@derter2007
@derter2007 Год назад
Доклад огонь, докладчику респект!
@user-qp3lt4ps8c
@user-qp3lt4ps8c 6 месяцев назад
Интересный доклад, респект автору!
@dmitryd1572
@dmitryd1572 2 месяца назад
Толковый доклад, спасибо большое !
@sovrinfo
@sovrinfo Год назад
Спасибо за видео. Коммент в поддержку!
@kazakhification
@kazakhification 3 года назад
Good explanation! I see you dived much profoundly. Thanks for your speach.
@user-ku4iu3ed9n
@user-ku4iu3ed9n 11 месяцев назад
Хороший доклад, интересно послушать о кишках го)
@alexanonymous5823
@alexanonymous5823 3 года назад
просто огонь=)) очень понятно про и простыми словами про го=))
@defer99
@defer99 7 месяцев назад
Отличный доклад, спасибо. Было бы интересно послушать и про аллокации памяти с garbage collector )
@patrickjustice7371
@patrickjustice7371 2 года назад
сразу лайк за зелёные треды, мало кто про них вспоминает
@vic_shine
@vic_shine 4 года назад
Про работу каналов Go, в таком глубоком формате, - было бы тоже интересно послушать ;) Спасибо!
@alexander.emelin
@alexander.emelin 3 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Tp5xhTMFuLU.html - про каналы, плюс на медиуме отличная статья medium.com/a-journey-with-go/go-buffered-and-unbuffered-channels-29a107c00268
@realmoftheminone
@realmoftheminone 2 года назад
О ты же чел из Fiber
@mini_clop
@mini_clop Год назад
@@alexander.emelin От души, душево в душе!
@timurkash
@timurkash 3 года назад
с версии 1.14 уже некооперативный, то есть preemptible
@mini_clop
@mini_clop Год назад
Спасибо за доклад, очень интересно и доступным языком! Подскажите где можно посмотреть про работу: каналов, мьютексов и взаимодействие с контекстом ?
@alexanderloginov2762
@alexanderloginov2762 Год назад
D. Curry Unix system programming. W. Stevens Unix IPC E. Raymond The Art of UNIX programming Если ничего не напутал с названиями.
@alexanderyurkin9363
@alexanderyurkin9363 Год назад
9:44 issue по внедрению вытесняющей многозадачности закрыт. Подскажите, вытесняющую многозадачность внедрили?
@minmara4537
@minmara4537 Месяц назад
отличный доклад, надеюсь на текущий момент рантайм не сильно поменялся)))
@kalmurza
@kalmurza 10 месяцев назад
Ни фига себе, у этого видео 60К просмотров 👍🏻
@petrkassadinovich2705
@petrkassadinovich2705 15 дней назад
8:28 - побуду немного душным. В коммунизме идеал распределения описывается фразой: "От каждого по способностям, каждому по потребностям". То есть, больше схоже с тем, что спикер записал в "Кооперативную" модель. Я не спец по измам, но этот момент помню))
@freeshooter3163
@freeshooter3163 Год назад
Очень хотел использовать GO в звездолёте, но облом по времени выполнения. Ладно, буду на ассемблере и Сишке пилить 😎
@user-rj5kt3ft8w
@user-rj5kt3ft8w Год назад
напилил?
@vp_arth
@vp_arth 2 месяца назад
Очень переживал за паутинку
@arnowt
@arnowt Год назад
Здравствуйте, спасибо за доклад! У меня остался вопрос. Допустим я пишу парсер. Есть 1ярд подготовленных урлов. Как лучше организовать рабочий цикл. Запустить скажем 1000 горутин (которые будут складывать результат в бд) и потом скармливать им через канал новые урлы в цикле. Или сразу в основном цикле на каждый урл создавать горутину?
@antonsergeyev
@antonsergeyev Год назад
Привет! Первый способ точно лучше. Такой подход называется worker pool, он позволяет предсказуемо контролировать потребление ресурсов. Простой пример приведён здесь gobyexample.com/worker-pools, есть и более усложнённые варианты. А пытаться создать 1 миллиард горутин я не пробовал, но рискну предположить, что не получится :)
@arnowt
@arnowt Год назад
@@antonsergeyev да, я уже протестировал оба варианта. Он действительно не создаёт ярд горутин. Создаёт какое-то кол-во тыс и потом по мере завершения одних создаёт другие и да, это сильно медленнее.
@wideybro
@wideybro 2 года назад
Почему он похож на маскота GO? 😅
@user-ub7qu4yo2i
@user-ub7qu4yo2i 2 месяца назад
Он стал превращаться в GO
@freeshooter3163
@freeshooter3163 Год назад
на Си легко реализуется код , аналогичный планировщику горутин, причём он заведомо будет более гибкий.
@dd-qz2rh
@dd-qz2rh 5 месяцев назад
Умение вибирать правильний инструмент для конкретной задачи ето один из основних скилом хорошего разраба. Не понимание для чего существуют разние уровни абстракции реализование при помощи разних ЯП ето призник слабого или же начинающего специалиста. На Си, как и на асемблере, можна написать абсолютно все. Ети же горутини и били на нем написани прежде чем переписани на го при уже работающем компиляторе го язика.
@ArtemCYOU
@ArtemCYOU 10 месяцев назад
сейчас уже только вытесняющая и никакой кооперативности уже не осталось в новой версии
@user-vt5uk4cj1h
@user-vt5uk4cj1h 2 года назад
Если в планировщике треда происходит Runtime.Goschedule и исполнение задачи выталкивается в другой тред, то как на это реагирует планировщик треда приемника ? Ему же придется тоже перебросить свои ранее запланированные подзадачи и т.д. в других тредах ?! Нужна ли эта суета или планировщик без Runtime.Goschedule нормально отработает ? Есть ли бенчмарк статистика, оправдывающая вмешательство разраба с ручным вызовом Runtime.Goschedule и говорящая, что от этого есть временной профит ?
@antonsergeyev
@antonsergeyev Год назад
Думаю, что в современных версиях языка функция Goschedule уже не очень актуальна - в язык уже добавили принудительное вытеснение горутин (на момент доклада его ещё не было). Так что я склоняюсь к тому, что суета не нужна :)
@z3r0slab96
@z3r0slab96 Год назад
1:20 программы на go собранные gc ВСЕГДА статические, если вы не используете сишные вызовы с cgo Для hello world вовсе необязательно включать fmt, есть встроенная функция print()
@ilya_de
@ilya_de Год назад
print делает вывод в STDERR а не в STDOUT
@batfist6595
@batfist6595 2 года назад
А почему... неважно
@madbad1310
@madbad1310 6 месяцев назад
Я всякое слышал, от коллег в том числе, но Schedule как "скеджюал" мой новый абсолютный фаворит.
@user-lc8zz3hn7k
@user-lc8zz3hn7k 6 месяцев назад
Гугл Переводчик предлагает произность как "шеджюл"
@johndoe9604
@johndoe9604 5 месяцев назад
это правильное произношение
@sergeys.3500
@sergeys.3500 Год назад
За printf() без trailing newline нужно казнить. Настолько сложно было " " добавить? bash-5.1$ echo "main(void) { printf(\"hello world\!\"); }" > main.c bash-5.1$ cc main.c 2>/dev/null && ./a.out hello world!bash-5.1$
@akiloci2198
@akiloci2198 Год назад
На каком уровне надо быть, что бы в это всё врубаться с первого раза?
@andreinorka2832
@andreinorka2832 Год назад
Высшего образования хватит
@z3r0slab96
@z3r0slab96 Год назад
А что не понятно?
@ngrx8750
@ngrx8750 Год назад
Кто в академ хорошо умеет, тот и врубается больше. Ну т.е. в базовые структуры и алгоритмы, там ЯП особо не при чём.
@shprodt8841
@shprodt8841 Год назад
23:58
@platon041970
@platon041970 Год назад
.....извратили Forth😁
@yuri_djur
@yuri_djur 3 года назад
"Отнять и поделить" это лозунг совершенно других граждан.
@gregandark8571
@gregandark8571 3 года назад
🔯
@ottoreder9305
@ottoreder9305 Год назад
@@gregandark8571 USSR :)
@gregandark8571
@gregandark8571 Год назад
@@ottoreder9305 ussr = ✡️
@achepkunov
@achepkunov Год назад
Ага, тоже не понравилось. При том, что не в тему, и в итоге все равно добавили. Потому, что,... ой, лучше тут остановлюсь)
@maksimus.ssirotkin1124
@maksimus.ssirotkin1124 4 месяца назад
Человек сильно разбирается в коммунизме)))
@maksimus.ssirotkin1124
@maksimus.ssirotkin1124 4 месяца назад
Идеал коммунизма как раз второе, правда его ни кто не видел.))
@YanA-bk1nb
@YanA-bk1nb 13 дней назад
Я один слышу дрэды? 😅
@bringcloud3009
@bringcloud3009 Год назад
Вот бы еще async/await в Golang вместо всех этих chan и go
@user-rj5kt3ft8w
@user-rj5kt3ft8w 9 месяцев назад
нет
@freeshooter3163
@freeshooter3163 Год назад
Научите пацана правильно произносить англ. shedule. Он видно ардуинщик, если у него это звучит как "скечул"
@antonsergeyev
@antonsergeyev Год назад
Спасибо за отзыв. Но во-первых, schedule всё-таки пишется через "c". Во-вторых, есть 2 варианта произношения - британский "shehjool" и американский "skehjool". Возможно, вам просто ближе британский :) Кстати, посмотрел у вас на канале видео про esp32 - очень интересно и глубоко осветили тему. Я сам на нём программировал в магистратуре, но не знал всех тонкостей об устройстве железа 👍
@andreyg5875
@andreyg5875 2 года назад
Это в РФ конфа? Просто смешной акцент у тех кто вопросы задавал)))
@AnelKerimbekova
@AnelKerimbekova 2 года назад
это Алматы :))
@vladimirlos5432
@vladimirlos5432 Год назад
"Треды большие и сложные, а корутины должны быть простыми."... Дальше слушать стало безразлично...
@expmodish9940
@expmodish9940 Год назад
Всё хорошо, хороший доклад, но при чем здесь коммунизм про отнять и поделить?! Молодой человек хорошо разбирается в программировании, но ни черта не знает о марксизме, политэкономии и философии. Так вот поправлю юного подавана: "не отнять и поделить", а "обобществить". ;-).
@hardlabor9412
@hardlabor9412 2 месяца назад
🤡🤡🤡
@faxriddinburkhanov6303
@faxriddinburkhanov6303 2 года назад
Java надо учить а не go
@patrickjustice7371
@patrickjustice7371 2 года назад
слишком толсто
@bobsimple8291
@bobsimple8291 2 года назад
нет, за php будущее
@user-bk5fz8wd9g
@user-bk5fz8wd9g 2 года назад
js
@user-zo2yd5dh2l
@user-zo2yd5dh2l 2 года назад
1С форева!
@ventilyator
@ventilyator Год назад
посоны переходите на питон
@konstantintanat4462
@konstantintanat4462 Год назад
Что за фигня верху записи плавает?
Далее
Безопасность в Golang | Навыки
1:30:15