Nikolay
может быть syscall'ы действительно блочат системные потоки, но всё остальноё - нет
потому что сеть в Go работает поверх IOCP/epool/kqueue, там блокировки хоть и есть но очень незаметные на системные вызовы связанные с тем, что я перечислил. Тоже самое делается и под Swift без проблем. Все везде одинаково, магии никакой в Go нет. На момент любого системного вызова поток приостанавливается на время его выполнения будь то 1ns или 1sec
Roman
ну а как-же context switching? когда в Go только 3 регистра меняются в то время как меняя системный поток нужно 16 обновить
Nikolay
ну а как-же context switching? когда в Go только 3 регистра меняются в то время как меняя системный поток нужно 16 обновить
я не понимаю вопроса. все достаточно примитивно: GOMAXPROCS=4 запускает 4 системных нитки и поверх на каждый свой планировщик. Где-то даже была статья помню на хабре про планировщик Go как он работает, где все расжевано. Так вот если самому в коде дергать сисколы - возникают блокировки и рантайм принимает решения отцепить этот процесс с тредом и создать дополнительный. Другими словами GOMAXPROCS не ограничить верхний потолок тредов на процесс ОС, если дергать в коде сисколы и при этом потом поражденные рантаймом треды не уничтожаются в принципе - только рестарт процесса. Сейчас найду статью дам ссылку - почитаешь, там все просто, ничего хитрого в принципе.
Roman
я не понимаю вопроса. все достаточно примитивно: GOMAXPROCS=4 запускает 4 системных нитки и поверх на каждый свой планировщик. Где-то даже была статья помню на хабре про планировщик Go как он работает, где все расжевано. Так вот если самому в коде дергать сисколы - возникают блокировки и рантайм принимает решения отцепить этот процесс с тредом и создать дополнительный. Другими словами GOMAXPROCS не ограничить верхний потолок тредов на процесс ОС, если дергать в коде сисколы и при этом потом поражденные рантаймом треды не уничтожаются в принципе - только рестарт процесса. Сейчас найду статью дам ссылку - почитаешь, там все просто, ничего хитрого в принципе.
да это понятно уже, я про скорость смены goroutine, в то время чтоб сменить системный поток на другой системный поток на CPU нужно более 16 регистров обновить, а чтоб сменить goroutine всего 3
Roman
поскольку в свифте всё на системных поток строится там постоянно полный context switch, в го это оптимизировано получается
This handling of syscalls is why Go programs run with multiple threads, even when GOMAXPROCS is 1. The runtime uses goroutines that call syscalls, leaving threads behind.
Nikolay
поскольку в свифте всё на системных поток строится там постоянно полный context switch, в го это оптимизировано получается
там тоже самое. там концепция очередей. выполняются замыкания грубо говоря в очереди и все
тут нашел https://morsmachine.dk/go-scheduler
неа, не сносит
ну хотя бы использует их повторно, я правильно понимаю?
Roman
однако странно конечно, если thread explosion произойдёт то вырастет потребление памяти
Roman
очень странно, почему они именно так решили задачу
nvkv
про конкурентные очереди не читай @ сразу пиши
nvkv
в горутинах го нет ничего нового
nvkv
а ещё Деда Мороза не существует!
nvkv
Прямо чувствую себя разрушителем легенд, блеать
Roman
а ещё Деда Мороза не существует!
о боже, да как же я так жил то)))))
Roman
разрушил ты мою детскую психику, подам на тебя в суд)))))
Roman
да, действительно думял иначе о goroutine'ах, оказывается не всё так сказачно пока что
Alex ZeroDub
какой драйвер для монги сейчас все еще торт ? все тот же mgo ? у него с августа коммитов нет
Andrey
попытался загуглить еще какой нибудь драйвер для монги, так ничего другого и не нашел
Anonymous
Раз коммитов нет, значит драйвер достиг совершенства!
Alex ZeroDub
Emacs достиг совершенства лет 10 назад. Но коммитов в нем каждый день полно) Ведь продукт должен развиваться
nvkv
Emacs достиг совершенства лет 10 назад. Но коммитов в нем каждый день полно) Ведь продукт должен развиваться
А? Чево, в нём уже можно пользоваться кей сиквенсами, когда у тебя в системе активна не английская раскладка клавиатуры?
nvkv
Не прибегая к помощи внутреннего кеймап свичера, который работает кое как?
Alex ZeroDub
хм. у меня никогда не было такой проблемы
Bogdan
Emacs достиг совершенства лет 10 назад. Но коммитов в нем каждый день полно) Ведь продукт должен развиваться
смешно такое читать, когда чувак из фейсбука только год назад пофиксил флирекинг там
Bogdan
потому что разрабы имакса за 30 лет не смогли в архитектуру рендера
Alex ZeroDub
для меня emacs работает хорошо. я пробовал все что можно. atom, sublime, vscode, etc.. настроил emacs под себя и обратно не хочу
Alex ZeroDub
про такой баг я не в курсе если честно
Bogdan
https://www.facebook.com/notes/daniel-colascione/buttery-smooth-emacs/10155313440066102/
Bogdan
(на самом деле я просто набрасываю, имакс норм, орг сказка)
Anonymous
До сих пор не использую емакс тк не знаю как из него выйти.
redbeard
выходить из емакса?!! зачем? O-o
Bogdan
зачем и куда выходить из операционной системы? 🤔
Мерль
До сих пор не использую емакс тк не знаю как из него выйти.
* до сих пор использую emacs, потому что не знаю, как из него выйти
Kirill
* до сих пор использую emacs, потому что не знаю, как из него выйти
это как у Чистякова на гитхабе — I opened Vim in 1997 and still did not find a way to quit it
Kirill
https://github.com/thomasmodeneis/jgo
ainu
http://www.pravoslavie.ru/sas/image/100509/50919.p.jpg вот фотка могилы
ainu
Святой Николай вполне историческая личность
ainu
Но это оффтоп.
nvkv
Ты вот сейчас взял и связал Святителя Николая с Дедом Морозом
nvkv
я бы понял, если бы Санта Клауса
nvkv
у них хотя бы что-то общее есть :)
nvkv
А деда мороза, по большому счёту, окончательно выдумали в 30-тых годах 20-того века
nvkv
сам понимаешь, что в это время вряд ли кто-то стал бы кальку с св. Николая делать
$continue$
всем привет. никто не знает, может ли Golang конвертировать дробные числа из 1 СС в другую. Руки пока не доходят до тестов, может кто знает.
Daniel
а какие дроби, кроме десятичных, мы употребляем?
Nikolay
а какие дроби, кроме десятичных, мы употребляем?
свинцовые дроби употребляем еще на охоте
🏳️ Phil
а какие дроби, кроме десятичных, мы употребляем?
Мы не знаю, а вплоть до XVI века включительно использовалось вавилонское счисление. Кстати, яркий показатель движение от удобства
Daniel
это может быть, но коллега спрашивает про дроби в других системах счисления
Daniel
а даже точка в дроби называется "десятичная точка"
🏳️ Phil
вавилонская система вполне себе "другая"
Daniel
то есть или колега хочет чего-то неортодоксального, или я чего-то не понимаю
Oleg
а какие дроби, кроме десятичных, мы употребляем?
Мы — никакие, но почему бы и не записать дробь в другой системе счисления на манер десятичной? Например, для упражнения в переводе между системами.
Daniel
стандартной записи такого рода не существует. но, конечно, "C шестнадцатых" мы можем и записать
Anonymous
Что у вас за задачки то такие... Одному надо 100500тиричную систему счисления, второму у дробей системы счисления менять...
ainu
Преоьращуешь целую, преобразуешь дробную
ainu
Дробную переводишь рациональное число со знаменатетелем СС
Oleg
Неужели Go в универах начали изучать?! 0_о
Anonymous
Студентота небось.
думаете преподы уже на Go принимают задачки?
Anonymous
Пресвятой Роб Пайк! Вот это нежданчик.
Oleg
только код не смотрят:D
Oleg
если бы они хотя бы быстродействие сравнивали
Oleg
Да. Если они действительно не смотрят код, а оценивают корректность выполненого задания внешними тестами, то возможно было бы корявость реализации обнаружить с помощью замера быстродействия (ну и ресурсоемкости, конечно же)
Anonymous
Сейчас такие мощности, что даже пентиум 4 перемолотит студентокод на питоне достаточно быстро.
Oleg
Поэтому мерить лучше запусками по 1000-100000, а лучше в несколько потоков