Алдар
Anonymous
мол никто не использует в настоящем продакшене
Anonymous
Если не буст асио, то что юзать?
Surreal
Anonymous
ну ладненько
Anonymous
спасибо
Anonymous
mr
Ку
Крылатый
Ништяк! https://blog.tartanllama.xyz/c++/2017/05/19/sycl/
mr
У меня есть указатель на переменную типа unsigned long, мне нужно получить каждую цифру. Как так сделать?
Александр
#supapro
Александр
Evgenii
https://www.facebook.com/sloneus/posts/802806086537556
🐙 Antony
https://www.facebook.com/sloneus/posts/802806086537556
Разберём каждый из плюсов С, найденных автором:
1) "экономит невероятное количество времени и сил" - использовать нативное АПИ скоетов - жуть адская... А , он использовал libev! Удачи с поиском незакрытых дескрипторов и утечками памяти. Мне лично без деструкторов жить страшно, а отлаживаться - долго.
2) "я точно знаю сколько было выделений памяти и что куда копировалось". Хм, с ASIO я это тоже знаю. ЧЯДНТ?
3) "пользоваться валгриндом/гдб стало проще на порядок". Пользоваться этими инструментами для отладки асинхронного кода - нулевое удоволствие вне зависимости от языка.
4.0) "упростился рефакторинг" - рефакторить всегда просто, когда рефакторишь свой код. Заставьте рефакторить чужой С код любого разработчика - услышите много новых ругательств, про утечки памяти и незакрытые дескрипторы.
4.1) "зависимостей остались только libc, libssl/libcrypto и libev". Используйте ASIO (без Boost) и C++11, получите такое же количество зависимостей.
Ставлю под сомнение профессионализм автора поста: нет ни кода "до", ни кода "после". Просто голословные завления.
Andrei
Andrei
И в плане написания кода, тоже минусы, связанные с тем, что надо разрывать код на вызовы асио. В итоге те несколько раз, что я сталкивался с асио выглядели как стейт машина + асио. В этом плане в корутинах всё несколько понагляднее.
🐙 Antony
Andrei
Почему?
Корутинные контексты переключаются в юзерспейсе за десятки наносекунд.
Andrei
Треды переключаются за микросекунды.
Andrei
Сама по себе callback-ная схема предполагает расходы на вызовы функций.
🐙 Antony
Корутинные контексты переключаются в юзерспейсе за десятки наносекунд.
Корутины не уберут переключения ОС потоков, а лишь *добавят* еще переключения контекста корутин. От callback вы не убежите (по крайней мере пока Windows не протянет корутины пространства ядра в userspace, но этого ждать ещё ооочень долго и неизвестно получится ли в принципе)
🐙 Antony
Корутины - сахар, а не способ ускорить программу
Andrei
Или я чего-то не понимаю, или виндовые файберы уже живут в userspace. Но как бы там ни было, когда у меня была задача сделать корутины в проекте, еще до выступлений Гора на эту тему, я просто написал десяток ассемблерных инструкций по сохранению и установке контекста.
Berkus
Andrei
Сделано.
Berkus
так, а ссылка
Andrei
Andrei
Любое другое однопоточное решение, конечно будет делать то же самое, но надо будет явно ходить в epoll\kqueue и восстанавливать какой-то стейт.
Berkus
Andrei
а ссылка?
С этим сложно. Legal issues.
Berkus
ну то есть бесполезно, когда будет в OSS - приходите еще
Berkus
у вас там boost::coroutine(2) или что-то свое?
Berkus
понял, даже видеть это не хочу
Andrei
А зря.
Berkus
поверь мне, не зря
Andrei
Даже спорить не буду. Уровень конструктивности около 0.
Крылатый
Legal issues, т.е. патентами обмазано?
Andrei
Andrei
Andrei
Скоро откроем.
Александр
Не в тему текущего спора: тут кидали обёртку над OpenCV, а есть ещё варианты?
Александр
С подписью zero-overhead, very simple желательно
Крылатый
И header-only)
Andrei
и mit license
Александр
И header-only)
Ну это уже идеал, либу я не поленюсь сбилдить
Andrei
Andrei
Если стейт достаточно большой, то может быть дешевле переключить esp и eip, чем читать его из какой-то структуры.
Andrei
Да, приблизительно одно и то же. Но для пользователя это выглядит совсем по-другому.
Александр
Andrei
Предположим, что у пользователя непростая бизнес-логика. В случае с корутинами выглядело это бы так, что в одном контексте соединения и пользователь из одной какой-то глубокой ветки if-а вызвал сетевую операцию, в другом контексте из совершенно дургого места. Когда ядерный диспетчер вернул нам корутину мы в неё переключились и сразу оказались в нужном месте по коду.
Andrei
В случае если нам возвращается указатель на какой-то стейт более менее сложная программа уже должна будет делать еще какую-то работу, чтобы прийти в место продолжения бизнес-логики.
Matway
поверь мне, не зря
Андрей, мне казалось, что ты достаточно логичен, чтобы переставать вести дискуссию с людьми, которые не могут это делать конструктивно :)
Matway
Вот это вот "не знаю, но осуждаю" - это круто!
Andrei
Matway
По факту, на данный момент это лучшее решение для диспетчеризации задач под Linux, OSX и Windows.
Matway
Yury
Всем привет! Cocos2d-x разработчики есть? Почему остановились на кокосе, какие альтернативы рассматривали?
Egor
привет. насколько знаю с кокосом всё сложно
Egor
альтернатив особо нет
Egor
при разработке вылазиет много ньюансов
Yury
Unity, defold и т.д.
Egor
под дроиды производительность нужна
Yury
да, это верно
Egor
в таком случае лучше либгдх брать
Egor
из него со спайном работать приятнее, чем из кокоса
Andrei
Yury
Изучаю технологический рынок для нового проекта.
Yury
Плюс у нас есть другой проект на кокосе. Разраб всем доволен, но хочется альтернативных мнений.
🦥Alex Fails
+, горит
🦥Alex Fails