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
Nikolay
Roman
поскольку в свифте всё на системных поток строится там постоянно полный context switch, в го это оптимизировано получается
Nikolay
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
тут нашел https://morsmachine.dk/go-scheduler
неа, не сносит
ну хотя бы использует их повторно, я правильно понимаю?
Roman
Roman
однако странно конечно, если thread explosion произойдёт то вырастет потребление памяти
Roman
очень странно, почему они именно так решили задачу
nvkv
nvkv
про конкурентные очереди не читай @ сразу пиши
nvkv
nvkv
в горутинах го нет ничего нового
nvkv
а ещё Деда Мороза не существует!
nvkv
Прямо чувствую себя разрушителем легенд, блеать
Roman
разрушил ты мою детскую психику, подам на тебя в суд)))))
Roman
да, действительно думял иначе о goroutine'ах, оказывается не всё так сказачно пока что
Alex ZeroDub
какой драйвер для монги сейчас все еще торт ? все тот же mgo ? у него с августа коммитов нет
Andrey
попытался загуглить еще какой нибудь драйвер для монги, так ничего другого и не нашел
Anonymous
Раз коммитов нет, значит драйвер достиг совершенства!
Alex ZeroDub
Emacs достиг совершенства лет 10 назад. Но коммитов в нем каждый день полно) Ведь продукт должен развиваться
nvkv
Не прибегая к помощи внутреннего кеймап свичера, который работает кое как?
Alex ZeroDub
хм. у меня никогда не было такой проблемы
Bogdan
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
зачем и куда выходить из операционной системы? 🤔
Anonymous
Kirill
https://github.com/thomasmodeneis/jgo
Oleg
ainu
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
Daniel
это может быть, но коллега спрашивает про дроби в других системах счисления
Daniel
а даже точка в дроби называется "десятичная точка"
🏳️ Phil
вавилонская система вполне себе "другая"
Daniel
то есть или колега хочет чего-то неортодоксального, или я чего-то не понимаю
Daniel
стандартной записи такого рода не существует. но, конечно, "C шестнадцатых" мы можем и записать
Anonymous
Что у вас за задачки то такие... Одному надо 100500тиричную систему счисления, второму у дробей системы счисления менять...
ainu
ainu
Преоьращуешь целую, преобразуешь дробную
ainu
Дробную переводишь рациональное число со знаменатетелем СС
Андрей
Oleg
Неужели Go в универах начали изучать?! 0_о
Андрей
Anonymous
Пресвятой Роб Пайк! Вот это нежданчик.
Oleg
Oleg
только код не смотрят:D
Oleg
если бы они хотя бы быстродействие сравнивали
Anonymous
Oleg
Да. Если они действительно не смотрят код, а оценивают корректность выполненого задания внешними тестами, то возможно было бы корявость реализации обнаружить с помощью замера быстродействия (ну и ресурсоемкости, конечно же)
Anonymous
Сейчас такие мощности, что даже пентиум 4 перемолотит студентокод на питоне достаточно быстро.
Oleg
Поэтому мерить лучше запусками по 1000-100000, а лучше в несколько потоков