LINUX.ORG.RU

Python Shared Objects

 , , ,


1

1

Поскольку релиз пре-альфо-альфы моего проекта вызвал шквальный интерес, то почему бы мне не запостить результаты своих успехов на LOR.

https://github.com/byko3y/python-shared-objects - репушка

https://habr.com/en/post/585320/ - статья-обзор-бенчи (ахтунг, english).

https://www.reddit.com/r/Python/comments/qfdj8m/pso_easy_concurrency_with_pyt... — душный тред на reddit (тоже инглиш, внезапно)

Меня больше всего удивила не негативная реакция, нет, а тот факт, что мне даже никто не ответил в списках рассылки бидона. При том, что чел, который недавно просто выкинул GIL из питона (просто выкинул, почему бы и нет) и выложил свое творение, словил кучу ответов. Ну то есть ответы плана «откуда вас таких рожают? С 1999 года уже который раз выкидывают GIL, но ни к чему это не приводит». ХЗ, может центральные разработчики просто заняты очень важным обсуждением нового синтаксиса для ленивых параметров по умолчанию в PEP 671, и в поте лица пытаются выбрать между символом «=:» и «=>», но никак не получается. Люди работают, а я их тут отвлекаю.

★★★★

Последнее исправление: byko3y (всего исправлений: 1)
Ответ на: комментарий от byko3y

Лично меня больше всего возмущает то, что люди вроде тебя этот настоящее положение дел пытаются скрыть, исказить, разрисовать яркими красками, выставить совсем не так, как оно было на самом деле

Но это же делаешь ты :)

я так и не получил железобетонных фактов, с которыми я бы мог прийти и сказать «вот, произошло это, и в результате GitHub завоевал весь рынок».

А откуда им взяться? Ты походу там тоже хотел невозможного. Это же история - можно гипотезы придумывать, проверить их уже не получится. При достаточной степени твоего упрямства любую непротиворечивую и железобетонную теорию ты отвергнешь. Так-то я точно помню что тормозной блевотиной GH никогда не был (а битбакет был и остался, например). А лично моё мнение почему GH взлетел - он оседлал волну влёта git (почему взлетел git, а не mercurial отдельная история, и тут я не готов спорить) и построил сервис вокруг его распределённой модели (необходимость в которой очень сильно назрела), выкинув всё не нужное. После классических хостингов типа SF, где тебе дают угол с пачкой стандартных, никак не интегрированных сервисов (репозиторий, ещё и с VCS на выбор, тикетница, wiki, файлы, форум/мейллисты), где чтобы изменение прислать нужно сделать десяток кликов типа склонировать реп, подготовить патч, разобраться как патчи принимаются в конкретном проекте, оформить письмо/тикет и надеяться что он не потеряется, а потом самому забыть в какой трекер что и когда засылал, это был как глоток чистого воздуха, ибо для контрибутора появилась возможность прислать изменение одним кликом, а для владельца проекта - одним кликом его принять. А для обоих - в одном месте видеть все входящие и исходящие изменения кода (именно как изменения кода, а не отвязанные от репозиториев текстовички).

А знаешь ли ты, что Ruby on Rails поднялся ТОЛЬКО за счет Apple?

Конечно же это ложь, если ты про их обещание воткнуть RoR в макось. Это какой год был, 2005? Тогда у макоси и доли-то заметной не было среди программистов. Да и для тех разработчиков от того будет ли RoR в коробке ничего не менялось.

LOL, а тебя не волнует, что разделяемое состояние способно сократить число запросов в разы? Тупо за счет того, что запрашиваемые данные уже были запрошены кем-то еще.

Ты вероятно сейчас о каком-то конкретном кейсе который есть только у тебя в голове. Я о нём ничего не знаю. У меня в голове вся экосистема разработки на питоне от ML до бэкенда, и я нигде не вижу там применения мутабельному разделяемому состоянию. Это вообще антипаттерн, поскольку означает что ты вместо того чтобы взять себе кусок задачи и его независимо обрабатывать ни на чём явно или неявно не блокируясь, зачем-то дрочишь исполнителей взаимодействием между собой. Такие кейсы бывают в latency-critical приложениях типа игрушек, но я умоляю, какой вообще latency-critical в питоне? Ну да, иногда можно выиграть памяти и абстрактных запросов одного и того же куда-то (в рамках одного хоста) сделав r/o mmap. Но для этого ничего не нужно кроме mmap. И то это уже становится неактуальным из-за NUMA.

А ты не можешь просто взять последовательный код и запустить его параллельно

Спасибо, я знаю. Я вообще-то вёл к тому что ты решил специфическую задачу. Решил специфическим способом несовместимым с обычной работой с питоновскими объектами, потому что теперь нужно обвешаться транзакциями. Ровно то же самое делает numpy, решает специфическую задачу специфическим способом. Если ты считаешь numpy костылём, твой модуль тоже костыль (но нормальные люди вообще считают и то и то просто частными решениями). Если ты считаешь что в языке из коробки должны были быть только массивы numpy чтобы их можно было быстро перемножать, с тобой наверное смысла нет дальше общаться.

https://habr.com/ru/post/481782 — это я только по поверхности прошелся. Кривизна питона не является чем-то неотъемлимым, без чего нельзя быстро и удобно разрабатывать на нем программы. Однако, беспорядочно кинутые в язык случайные фичи — это хороший маркетинговый ход, который и обеспечил ему успех. Помнишь лямбды? На потеху лисперам в питона завезли лямбды, filter, map, reduce. И по итогу это говнище оказалось полностью неюзабельным, а reduce вообще убрали и встроенных функций

И что? Нет языка в котором нет косяков, кривизны и говнища. Нет и никогда не будет. Это обусловлено такой штукой как «развитие» без которого язык никому не будет нужен прямо с момента появления. Тут можно поскулить про неумение в проектирование, но этот скулёжь я готов простить только людям которые ничего никогда не проектировали, особенно успешный, сверхпопулярный проект с 30летней историей. Остальные прекрасно понимают что на такие периоды в настолько изменчивой среде как IT ничего спроектировать нельзя в принципе.

Эм-м-м… ты хочешь сказать, что у популярности софта есть немаркетинговая природа? Вот это поворот.

Ох, даже так? Тогда действительно поворот. Или у тебя какое-то своё определение маркетинга, или мне очень интересно кто же вложился продвижение говённого питона, и почему бывают популярные вещи в которые никто не вкладывался, в том числе популярнее коммерсни в которую вкладывается дофига.

Ну типа если я говорю одноногому «ты — одноногий» — это оскорбление? Этика, она же учение про лицемерие, меня не прельщает.

Одноногий - нет. Но ты упоминал дедов и пердунов. Можешь пояснить как к теме относятся возраст и особенности работы кишечника, а заодно, коли от дедов и пердунов ты не готов принять критику, от кого готов.

slovazap ★★★★★
()
Ответ на: комментарий от byko3y

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

anonymous
()
Ответ на: комментарий от slovazap

Можешь пояснить как к теме относятся возраст и особенности работы кишечника, а заодно, коли от дедов и пердунов ты не готов принять критику, от кого готов.

У него этика СВОЯ …

anonymous
()
Ответ на: комментарий от rupert

Зато я смогу собрать и попробовать его проект, потому что

The proof-of-concept works best on Linux x86-64

Исправлено. Не знаю, почему я так тянул с этим, оказалось значительно проще, правда, по итогу максимальный объем разделяемой памяти ограничен 64 ГБ. Зато собирается и работает на 64 бит — только у одной структуры поплыло выравнивание и пришлось фиксить. В принципе, можно было не париться и тупо оставить ограничение 4 Гб на 64 бит.

byko3y ★★★★
() автор топика
Последнее исправление: byko3y (всего исправлений: 1)
Ответ на: комментарий от slovazap

У меня в голове вся экосистема разработки на питоне от ML до бэкенда, и я нигде не вижу там применения мутабельному разделяемому состоянию

А создатели PyTorch видят, например, для реализации алгоритма Hogwild:
https://pytorch.org/docs/stable/notes/multiprocessing.html
А как минимум в TensorFlow многозадачность сокрыта в глубинах либы за слоями абстракции, и питон только посылает команды настоящим рабочим потокам.

Ты смирился с отсутствием многопоточности в питоне, потому исключил из поля зрения все явления касающиеся «больной темы», и теперь с удивлением приходишь к выводу «так оно не нужно». Как линуксоиды, которые в старые добрые времена постоянно рассказывали басни про «зачем 3D игры, когда у нас уже есть божественный Dwarf Fortress». Ты рассказываешь аналогичную басню.

Это вообще антипаттерн, поскольку означает что ты вместо того чтобы взять себе кусок задачи и его независимо обрабатывать ни на чём явно или неявно не блокируясь, зачем-то дрочишь исполнителей взаимодействием между собой

Как ни странно, мне проще придумать задачи, где выполнение и состояние пересекаются между задачами, чем задачи. которые вообще независимы и не нужна их координация. Допустим, у тебя самый примитивный веб сервис на питоне. Он почти ничего не делает — это просто несколько независимых воркеров «без разделяемого состояния», которые рассылают пакеты со входа на несколько целевых узлов. Но вот беда — нагрузка целевых узлов может в некий момент превысить критическую, неотправленные запросы копятся и жрут память. Я понимаю, что под таких клиентов AWS и делает свое облако, позволяя задействовать неограниченное число ресурсов, только лишние $20k за хостинг не обрадуют твоего босса/заказчика. Об этой ситуации нужно либо послать сигнал либо предыдущему в цепочке сервису, либо некоему координатору. Как это сделать? Как вообще узнать, что затык идет не по одному воркеру, а по системе в целом?

Я тебе скажу, как это делается сейчас — создает координатор-оркестратор, который, внезапно, является разделяемым общим состоянием, собираемым со всех твоих тупорылых воркеров, неспособных работать с разделяемым состоянием. Та же самая история с кэшем-координацией на Redis, Memcached, RabbitMQ, или просто реляционной СУБД — неспособность питона работать с разделяемым состоянием привела к сумасшедшей популярности, костылей, которые ничего не умеют, кроме как работы с разделяемым состоянием. Антипаттерном разделяемое состояние становится только когда его суют куда ни попадя, а сейчас его сильно меньше, чем объективно нужно для решения задач.

Вообще, проблема координации/отмены/уточнения параметров/доклада об ошибке с продолжением — это ключевая штука, про которую большинство хайлоадов-бигдатов почему-то забывают. Ты можешь параллельно выполнять запросы, но часто бывает, что ответы на них уже не нужны — пользователь давно закрыл вкладку браузера или перешел на другую страницу, всё, обработку можно останавливать. А для начала как вообще найти того, кто этот запрос сейчас обрабатывает?

Задачи же, которые можно выполнить строго по расписанию в заранее известное число потоков с заранее известной цепочкой шагов без ошибок и прочих непредвиденных обстоятельств — крайне редки в реальной жизни. Вот я тебе привел примеры бэка и ИИ — ты будешь продолжать припираться?

Ну да, иногда можно выиграть памяти и абстрактных запросов одного и того же куда-то (в рамках одного хоста) сделав r/o mmap. Но для этого ничего не нужно кроме mmap. И то это уже становится неактуальным из-за NUMA

Если в NUMA межсокетовый запрос памяти в 5-10 медленнее внутрисокетового, это не значит, что межсокетовые запросы не нужны. Смысл NUMA в том, чтобы ускорить внутрисокетовую память за счет того, что у каждого процессора она своя, ее не нужно делать с другим процессором, а не в том, чтобы сделать память медленной. Разделяемая память — это вообще единственный способ передать что-то от одного сокета другому, ты можешь только делегировать организацию разделяемой памяти ОС, но ты не сможешь убежать от нее.

Я вообще-то вёл к тому что ты решил специфическую задачу. Решил специфическим способом несовместимым с обычной работой с питоновскими объектами, потому что теперь нужно обвешаться транзакциями. Ровно то же самое делает numpy, решает специфическую задачу специфическим способом

Я решил эту задачу на уровне базовых объектов питона, через которые работает даже NumPy. Что базовые объекты мало используются из-за того, что все программы с ног до головы слеплены из специфических костылей — ну сорян, я старался как мог.

Если ты считаешь numpy костылём, твой модуль тоже костыль

Да, костыль. Я ж не спорю. Абсурд NumPy в том, что он не делает ничего такого, чего нельзя было бы сделать простым питоном. Он просто делает всё то же самое быстрее. И не сочетается ни с чем. То есть, функция питона как клея с треском проваливается — это уже не клей, а тупая конфигурялка, которая из соображений производительности сама не касается данных, а только передает ссылки на черные ящики из одной либы другой.

Если ты считаешь что в языке из коробки должны были быть только массивы numpy чтобы их можно было быстро перемножать, с тобой наверное смысла нет дальше общаться

Разуй глаза и увидь Julia, которая это уже делает.

Это обусловлено такой штукой как «развитие» без которого язык никому не будет нужен прямо с момента появления

Какое «развитие»? Питон за 30 лет поменял только косметику.

Тут можно поскулить про неумение в проектирование, но этот скулёжь я готов простить только людям которые ничего никогда не проектировали, особенно успешный, сверхпопулярный проект с 30летней историей

Представь: ты сидишь на толчке справляешь биологическую нужду. Только встаешь, чтобы смыть — тут в дверь врывается толпа журналистов с фотографами, весь сортир озаряется вспышками, каждый фотограф старается запечатлить и тебя, и твое творение в унитазе. Журналисты суют микрофоны, один спрашивает «как вам это удалось? Расскажите нам секрет умелого проектирования архитектуры говна?». И ты, как Гвидо, начинаешь думать про себя «вау, да я же звезда. Да я же архитектор» и делая серьезное лицо отвечаешь «знаете, меня всегда вдохновляли борщ с манной кашей».

Вот что случилось с питоном. Его никто не проектировал, там нет никакой архитектуры, Гвидо просто высрал его как продукт жизнедеятельности — кто-то играет в доту, кто-то бегает за девчонками, а кто-то пишет очередной интерпретатор. Один посрал — второй поел, и завертелось. Ты думаешь, что Гвидо изначально задумывал питону именно такую судьбу? Да он вообще ничего не задумывал, ему просто нечем было заняться летом.

Или у тебя какое-то своё определение маркетинга, или мне очень интересно кто же вложился продвижение говённого питона, и почему бывают популярные вещи в которые никто не вкладывался, в том числе популярнее коммерсни в которую вкладывается дофига

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

Маркетинг, заключающийся в тупом выбрасывании денег на ветер — это, на самом деле , плохой маркетинг. Чем меньше денег тратится на маркетинг при равном результате — тем лучше.

byko3y ★★★★
() автор топика
Ответ на: комментарий от slovazap

Ты походу там тоже хотел невозможного. Это же история - можно гипотезы придумывать, проверить их уже не получится. При достаточной степени твоего упрямства любую непротиворечивую и железобетонную теорию ты отвергнешь. Так-то я точно помню что тормозной блевотиной GH никогда не был

Опровергнуть можно рассказы на пальцах вроде «ну кароч удобный был сайт» — потому что как удобен? Чем удобен? А фактов-то и нет. Вот когда есть статистика, есть нотариально заверенные скриншоты, то тут уже не отвертишься, хочешь-не хочешь, а придется признать факт. Например, если ты дашь ссыль на архивные статьи о том, что bitbucket регулярно лежал, а GitHub — надежно работал в это время, то это прокатывает за железобетонный факт. А так это ллишь спекуляции не тему.

моё мнение почему GH взлетел - он оседлал волну влёта git (почему взлетел git, а не mercurial отдельная история, и тут я не готов спорить)

Потому что гладиолус. Это уход от ответа на другой вопрос. Я уверен в том, что git без GitHub никому не нужен. В общем-то, и с GitHub он никому не нужен, им нужен только гитхаб.

Конечно же это ложь, если ты про их обещание воткнуть RoR в макось. Это какой год был, 2005? Тогда у макоси и доли-то заметной не было среди программистов. Да и для тех разработчиков от того будет ли RoR в коробке ничего не менялось

Мне лень в десятый раз поднимать тему, сорян. У тебя нет фактов, у тебя есть додумки.

Одноногий - нет. Но ты упоминал дедов и пердунов. Можешь пояснить как к теме относятся возраст и особенности работы кишечника, а заодно, коли от дедов и пердунов ты не готов принять критику, от кого готов

Мне все равно, от кого принимать критику, если она годная.

byko3y ★★★★
() автор топика
Ответ на: комментарий от seiken

Почему нельзя просто взять C# или на худой конец Java?

Ну спроси это у дата сасаентистов и этих ваших бэкэндов. Хотя, странно, что ты не спросил «почему нельзя взять Go» — ведь это наиболее адекватная замена жаве и его изначальному клону, C#.

byko3y ★★★★
() автор топика
Ответ на: комментарий от byko3y

спроси это у дата сасаентистов

Это такие челики, которые выясняют, что чаще всего покупают вместе с туалетной бумагой?

seiken ★★★★★
()
Ответ на: комментарий от seiken

Это такие челики, которые выясняют, что чаще всего покупают вместе с туалетной бумагой?

Да. Ну, знаешь, это как «архитектор», работа которого заключается в установке и конфигурации софта, «менеджер», работа которого подозрительно совпадает с определением русского слова «продавец», «администратор», по функциям подозрительно напоминающий работу вахтера, и индусы, которые прямо из института получают звание «синьор програмер».

byko3y ★★★★
() автор топика
Ответ на: комментарий от byko3y

Ты, вроде как, ищешь занятия на плюсах за идею. Пожалуйста, посмотри баг-трекер проекта MyTetra. Очень хочется развития проекта.

anonymous
()
Ответ на: комментарий от seiken

Порнохаб открой для себя уже, и удивись грамотной работе «челиков», хам.

anonymous
()
Ответ на: комментарий от anonymous

Ты, вроде как, ищешь занятия на плюсах за идею. Пожалуйста, посмотри баг-трекер проекта MyTetra. Очень хочется развития проекта

Мне тоже очень хочется организовать свои заметочки, но то, как это предлагает делать MyTerra, мне видится весьма неудобным. Просто фиксить рандомные баги чот неприкольно.

byko3y ★★★★
() автор топика
Ответ на: комментарий от alysnix

причем тут раст, какие-то «повреждения памяти»…мне на раст вообще положить. я про плюсы говорю.

Ты имеешь дело с борцом за идею. Он поехавший. Он сам не замечает как в разговоре про морковку быстро переходит на обсирание раста. Какая бы ни была начальная тема. Спорт, политики, история, философия - «а кстати у раста вот это все погибель». У человека миссия, не мешай.

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от byko3y

Сколько сишников могут таким похвастаться?

Мало. Но вопрос надо ставить так, нахрена вообще питону эта штука. 99.9% использований этого ЯП бесконечно далеки от подобных вещей.

wandrien ★★★
()
Ответ на: комментарий от vertexua

Еще вроде dev.to неплох

И то правда, я чот прошел мимо него и не обратил внимания.

byko3y ★★★★
() автор топика
Ответ на: комментарий от vertexua

Ты имеешь дело с борцом за идею. Он поехавший. Он сам не замечает как в разговоре про морковку быстро переходит на обсирание раста. Какая бы ни была начальная тема. Спорт, политики, история, философия - «а кстати у раста вот это все погибель». У человека миссия, не мешай

Разговор шел про то, как безопасно работать с разделяемыми данными. Вот Rust — это хороший пример того, как не нужно реализовывать работу с разделяемыми данными. Я потому его и привел. Не поймите меня неправильно — у раста есть плюсы, иначе бы у него не было столько фанатов. Но эти плюсы настолько смехотворны, что фанаты резко сдуются после первого же опыта серьезной разработки — моя борцовость за идею заключается не более чем в том, чтобы видеть эту проблему заранее.

byko3y ★★★★
() автор топика
Ответ на: комментарий от wandrien

Мало. Но вопрос надо ставить так, нахрена вообще питону эта штука. 99.9% использований этого ЯП бесконечно далеки от подобных вещей

Конечно далеки, потому что многопоточности там нет. Тем не менее, AI и бэк довольно часто имеет необходимость крутить ресурсоемкие шняги, и чтобы делать это не на одном ядре приходится задействовать костыли. Вот я и подумал «а что если в питоне будут потоки без костылей?».

byko3y ★★★★
() автор топика
Ответ на: комментарий от byko3y

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

Rust book, идея языка - отлично.

Язык непригоден для практической разработки пока не появится равноценный transpiler в C. А его отсутствие очень подозрительно.

Rust это C в 1985. С некоторыми поправками. Но тогда появился GCC/GPL, и C уже совсем другой язык доступный всем.
Rust пытаются пропихнуть везде каким-то странным путём. А написать transpiler в C «соопщиство» не хочет или не может. Или нельзя…

Для языка в котором все гарантии на этапе компиляции должен быть transpiler в C.
Статическую линковку похоже использовали для убеждения энтузиастов не использовать GPL. Только энтузиасты не задумывались почему это вдруг с их точки зрения статическая линковка и GPL не должны сочетаться. В случае с GPL ты теоретически можешь судиться в правовом обществе, а для корпораций чтобы судиться между собой не нужны лицензии в принципе, достаточно патентов каких-то.

tp_for_my_bunghole
()
Ответ на: комментарий от byko3y

Мало. Но вопрос надо ставить так, нахрена вообще питону эта штука. 99.9% использований этого ЯП бесконечно далеки от подобных вещей

Конечно далеки, потому что многопоточности там нет.

Guido не мог смириться с тем что Python перестанет ассоциироваться с ним как с создателем.
Переход 2->3 этому никак не угрожал, и потому произошёл.
A Stackless Python угрожал этому, потому остался в стороне.
Greenlet тоже не очень приняли, осталось в виде либы.
Async/await подошёл почему-то. Это просто синтаксис, и Guido может быть ещё в том режиме когда учебный язык ABC стал Python.
Переход 2->3 должен был быть более фундаментальным.

Go после Python почему-то воспринимается как расширение возможностей, несмотря на то что говорят о языковых конструкциях. Кто-то и Python раньше оценивал только по «отступам».

tp_for_my_bunghole
()
Ответ на: комментарий от byko3y

Кароч, пока в питоне 30 лет не могут запилить нормальные потоки — я зашарил питоньи объекты между процессам. Если гора не идет к Магомету, то Магомет сам пойдет к горе.

Нет, просто Магомет долбоеб и давно должен был найти себе более подходящий язык.

anonymous
()
Ответ на: комментарий от anonymous

извиняюсь, более подходящую гору

anonymous
()
Ответ на: комментарий от byko3y

Вот Rust — это хороший пример того, как не нужно реализовывать работу с разделяемыми данными.

как так? ведь его дизайнили как раз для этого.

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

ФФ не серьезная разработка?

Minona ★★☆
()
Ответ на: комментарий от Minona

как так? ведь его дизайнили как раз для этого

Нет, его дизайнили для того, чтобы написать браузер. Там в основном один галвный цикл, в том числе для JS, и изредка дергаются потоки, для общения с которыми введены очень жесткие ограничения, чтобы не дай бог случайно не произошло параллельных вычислений.

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

ФФ не серьезная разработка?

А FF не на расте. Там раста в лучшем случае 20%, если считать только по компилируемым высокоуровневым языкам.

byko3y ★★★★
() автор топика
Ответ на: комментарий от byko3y

Нет, его дизайнили для того, чтобы написать браузер.

точнее для «безопасной многопоточной обработки» в браузере.😏

Minona ★★☆
()
Ответ на: комментарий от Minona

А что у нас там есть из многопотока? CSS?

https://www.phoronix.com/scan.php?page=news_item&px=Firefox-71-vs-Chrome-...

Да, по факту FF выигрывает на StyleBench, который вообще ничего кроме стилей не делает. Но если посмотреть на тесты с DOM, то там результаты уже не такие радужные. У браузера в принципе параллелизуемость довольно низкая — спасибо веб стандартам и конкретно бесчисленному множеству веб-мартыхов, которые будут продолжать дергать clientHeight из обработчиков.

byko3y ★★★★
() автор топика
Ответ на: комментарий от byko3y

А что у нас там есть из многопотока? CSS?

WebRender вроде еще многопоточный.
помнишь такую красивую картинку😏: https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2017/10/01.png
у них в планах было весть этот пайплайн на многопоток перевести.
он с каждым новым релизом шустрее бегает, видимо что-то получается.
--
вспомнил.
у Макса Лапшина самописная прошивка для ип-камеры на расте написана.
не мильен строк кода конечно, но без многопотока там никак.

Minona ★★☆
()

Просьба к ТС объяснить для чего разработан этот API и какой от него профит.

Также просьба привести пример кода на Python, использующий этот API и
аналогичный код без использования этого API и конечно объяснить в чем профит …

anonymous
()
Ответ на: комментарий от anonymous

Просьба к ТС объяснить для чего разработан этот API и какой от него профит

Нативная питонья многопоточность почти без гемора, без опасностей дедлоков и гонок. Впрочем, гемор все равно остается, потому что за 30 лет под питоном нагородили бесчисленное множество костылей, которые каждый требует особенного отношения.

Также просьба привести пример кода на Python, использующий этот API и

аналогичный код без использования этого API и конечно объяснить в чем профит

По ссылке на хабр есть пример однозадачного кода, multiprocessing, и PSO.

byko3y ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.