
Ayrat
06.07.2018
18:36:18
:D

Вексельберг
06.07.2018
18:37:46
А вижулстудию не хочется дома ставить, на работе сыт ей по горло

Google

Vasiliy
06.07.2018
18:38:33

Ayrat
06.07.2018
18:38:42

Ivan
06.07.2018
18:38:44
Хотя бы чистый standard впилить. Попробую на выходные.

Ayrat
06.07.2018
18:40:06
пару месяцев назад перевели гопачок на нетстандарт и новую версию fsproj

Ivan
06.07.2018
18:40:55
И правда..
Упустил

Ayrat
06.07.2018
18:42:26
В го вот уже вроде завезли вытесняющий шедулер. В CML был вытесняющий шедулер. Считаю и в гопак надо, автор хотел, как я понял, но времени или желания не хватило.

Ivan
06.07.2018
18:48:16
Да он вроде по работе уже не успевает.
Отдал сообществу

Ayrat
06.07.2018
18:49:08
Сообщество не осилило) никто не отваживается трогать

Pavel
06.07.2018
18:49:31

Google

Ivan
06.07.2018
18:50:41
Вытясняющий шедулер - это ка в erlang?

Ayrat
06.07.2018
18:51:01
как в любой нормальной ОС. каждые N миллисекунд вытесняем тред из ЦПУ и даём поработать другим

Ivan
06.07.2018
18:51:32
Там инструкции считаются, а у нас как?
Понял.

Ayrat
06.07.2018
18:51:53
в случае софтварной имплементации, вытесняем легковесную абстракцию из треда и даём другой легковесной абстрации поработать

Ivan
06.07.2018
18:52:44
Причина вытеснения - расход времени проца?

Ayrat
06.07.2018
18:53:17
что важно для всяких телекомов и высоконадёжных систем

Ivan
06.07.2018
18:54:17
Да преимущества я понимаю - опять же смотри erlang. А вот схему реализации пока не уловил.

Ayrat
06.07.2018
18:54:23
на самом деле за 20мс можно сделать миллиарды инструкций) по меркам современных машин это вечность
Да преимущества я понимаю - опять же смотри erlang. А вот схему реализации пока не уловил.
честно сказать я знаю только низкоуровневую реализацию, которая на уровне кернела.
Т.е. запоминаем адрес текущей инструкции, регистры, стек с поинтеров возврата - это всё контекст синхронизации и берём следующий тред из списка готовых к работе.
В кернеле ведётся через дабл линкед листы все треды которые готовы и хотят поработать и которые блочатся и ждут интерапта

Ivan
06.07.2018
18:56:40
Erlang машина ориентируется на количество инструкций. Сорвать может на любой. Но это все же интерпретатор. Если я уйду в лонг-рунниг, то порвать не смогу без хардверного прерывания, и дорого будер по переключению.

Ayrat
06.07.2018
18:56:40
ну и жонглируем ими туда-сюда

Ivan
06.07.2018
18:57:23
А на коротких - получится голенг

Ayrat
06.07.2018
18:57:41
кернел тоже может сорвать на любой инструкции. Как реализовать софтварно - я бы с удовольствием послушал умных людей

Ivan
06.07.2018
18:58:13
Там очередь с нарастающими приоритетами на переключение. В принципе не сложно.

Ayrat
06.07.2018
18:59:24
ну да, но ведь надо чтобы не было сильной просадки по перформансу на постоянных свичах и хоть в теории проблема fairness решена, всплывает другая - теоретически одинаковое время цпу у всех джобов. с этим могут быть проблемы

Ivan
06.07.2018
18:59:54

Ayrat
06.07.2018
19:00:46
я знаю как в CML сделали. там у каждой джобы был флаг - отдавала ли она добровольно выполнение, или её вытесняли. Если за квант вытеснения джоба была вытеснена насильно, то в следующий квант она отправлялась в отдельную очередь выполнения, которая была низкоприоритетная по шедулингу.

Google

Ayrat
06.07.2018
19:01:27
таким образом джобы которые до последнего все 20мс выбирали время, работали реже чем те, которые работали по 1 мс например
короче, я бы с удовольствием занялся проблемой. Жалко это всё придётся в нерабочее время делать

Ivan
06.07.2018
19:02:47
Что не всегда хорошо. А где оно рабочее время? На бессмысленное ООП уходит. ?

Ayrat
06.07.2018
19:02:52

Ivan
06.07.2018
19:05:10
Линуксовый лучше написан. Я виндовый видел. Лучшне не надо ?. Лучшая реализация, которую я видел - это в RSX. Несмотря на возраст.

Ayrat
06.07.2018
19:05:48

Ivan
06.07.2018
19:06:00
Декомпиле
Найду скину

Ayrat
06.07.2018
19:06:49
Ну да, об этом я чот не подумал) Не, ну С я ещё могу читать, но асемблер тяжко даётся

Ivan
06.07.2018
19:10:53
Есть декоппилеры в С, кривоватые правда ?

Ayrat
06.07.2018
19:11:17
Ничо, подождём винду в опенсорс :D

Ivan
06.07.2018
19:11:45
Недолго осталось

Roman
06.07.2018
19:25:09

Вексельберг
06.07.2018
19:25:41


Ayrat
06.07.2018
19:26:50
И честно говоря, когда разберёшься, особо сложного не видно. просто надо закодить
да, надо учесть приоритетные очереди, стилинг алгоритмы между ядрами (а в случае языковой реализации тредами) и кой чо другое
но опять таки, есть хорошие опенсорс примеры в виде линукса, есть куча статей. Надо сделать так же, как сделали до нас

Google

Roman
06.07.2018
19:29:38

Ayrat
06.07.2018
19:29:41
Дмитрий Вьюков
нашёл имя
Нем огу il читать
Выбешивает совсем
ооо. Я признаться IL не читаю почти, т.к. бизнесу примерно насрать на его существование. НО
Однажды была проблема. Приложение, поставляемое корпоративным заказчиком (аддон для CAD системы) из-за хардокодно выставленной локали не запускалось на машинах с другими локалями.
Я тогда вообще мало чо понимал, но смог запатчить IL код чтобы выставлять локаль согласно настройкам машины.
Гордился собой неимоверно. С тех пор в IL код глядел может раз 5...
кстати, у Дмитрия есть отличный сайт
http://www.1024cores.net/
рекомендую к ознакомлению

Roman
06.07.2018
19:36:15

Ayrat
06.07.2018
19:36:48
Дмитрий?
Дмитрий Вьюков. гугло работник, который рисует для го шедулер

Roman
06.07.2018
19:37:03
Аа

Vladimir
06.07.2018
20:58:02
А видели, что сегодня фшарп 4.5 сегодня релизнулся?)

Ayrat
06.07.2018
20:58:43

Vladimir
06.07.2018
20:59:17
аа, это я решил пэкеджи обновить и июнь с июлем перепутал)
6/7/2018

Ayrat
06.07.2018
21:00:46
6/7/2018
есть мнение, это в дебильном US формате
MM/dd/YYYY

Vladimir
06.07.2018
21:01:00
ага, так и есть

Vlad
06.07.2018
21:29:02


Friedrich
07.07.2018
04:43:10
ооо. Я признаться IL не читаю почти, т.к. бизнесу примерно насрать на его существование. НО
Однажды была проблема. Приложение, поставляемое корпоративным заказчиком (аддон для CAD системы) из-за хардокодно выставленной локали не запускалось на машинах с другими локалями.
Я тогда вообще мало чо понимал, но смог запатчить IL код чтобы выставлять локаль согласно настройкам машины.
Гордился собой неимоверно. С тех пор в IL код глядел может раз 5...
Было дело, нам вендор поставил либу для купюроприёмника, написанную на дотнете. По сути либа — обёртка для работы с COM-портом. И вот она у них там в цикле дёргала while(true) { port.Read() }, и сильно потребляла CPU (что для нас было недопустимо — для бизнес-логики с трудом мощности хватает, а тут ещё эта либа дурацкая).
Исходников вендор, конечно, не поставляет. Мы сперва попробовали её задекомпилять, добавить туда Thread.Sleep(15) и закомпилять обратно. Но либа была написана очень криво, при пересборке новым C#-компилятором в ней поменялось что-то ещё (лично я грешу на тайминги разных операций в условиях кривой работы с многопоточностью), и стала очень часто падать.
Поэтому в итоге мы её задампили ildasm'ом, добавили уже в IL-коде нужный вызов, а потом заассемблили обратно. Работало несколько месяцев в продакшене без нареканий (а потом уже вендор нам прислал исправленную версию).
Чуваки, а у кого-нибудь есть опыт работы с F# на Alpine? У меня что-то докерный образ с Alpine (microsoft/dotnet:2.1.301-sdk-alpine3.7) отказался собирать F#-проект, ругаясь на какие-то неверные коды возврата из шелскриптов.
Нет ли у нас в компиляторе бага?


Vlad
07.07.2018
05:05:11

Friedrich
07.07.2018
05:05:43

Google

Friedrich
07.07.2018
05:05:56
Ладно, хрен с ним, пока решил проблему, переехав на bionic.
Хотел было заюзать дефолтовый дебиан, но там nodejs очень старая в репозиториях, поэтому не вышло :(

Roman
07.07.2018
09:08:54

Friedrich
07.07.2018
09:13:58
Ну и на самом деле там всё маленькое по сравнению с объёмом dotnet-sdk :)

Roman
07.07.2018
09:18:12
Убунта весит 500 метров, моно ставил ещё 400 и это печально.
На Альпина для моно нужно было 450. И в итоге образ весил все же меньше полугигабайта. для деплоев всяких это важно)

Artem
07.07.2018
15:46:37
ой
а почему это всё в ф# чате??

Friedrich
07.07.2018
15:47:36

Artem
07.07.2018
15:48:50

Friedrich
07.07.2018
15:49:26

Artem
07.07.2018
15:52:28

Friedrich
07.07.2018
15:52:59
Я с ними не очень близко знаком, пользуюсь редко, поэтому не знаю.

Vlad
07.07.2018
15:58:34
В плане они на коре не работали

Friedrich
07.07.2018
15:58:59
Да.

Artem
07.07.2018
16:01:28

Vlad
07.07.2018
16:02:30
Да.
А где-то в природе есть сравнение перфоманса моно и неткора?

Friedrich
07.07.2018
16:03:08
Не встречал, надо спрашивать Егора.

Artem
07.07.2018
16:03:20