Vladislav
И что же, кто-то оплачивает рекламу этих статей из альтруизма?
Ioann_
Рекламу ? В самих статьях обычно рекламы нет. Ну я не особо в теме если что. Но в основном в статьях пишут что то в духе - если решишься то есть шанс что все выйдет, а если так и будешь сидеть сложа руки то не выйдет никогда. Вот типа такого. И ведь не поспоришь, но меня это мотивирует, честно говоря 0_0
Vladislav
Vladislav
Ivan
Evgenii
omfg
Evgenii
https://github.com/DaemonSnake/unconstexpr
Александр
о, это тема, развитие идеи constexpr-counter'а
Stanislav
#cpp #cpp14 #pathfinding
Compile-time templated A* pathfinding in C++14
http://lapinozz.github.io/learning/2017/07/17/compile-time-templated-a-star-pathfinding.html
Stanislav
еще до кучи
Stanislav
cyberzx 🇷🇺
Если нужно быстро, то есть eastl. Люди уже построили свой быстрый велосипед, который довольно хорошо совместим со стандартом. Вот запустил у них бенчмарк для сета
set<uint32_t>/clear | 34153 34.2 us | 18229 18.2 us | 1.87 +
set<uint32_t>/count | 4035918 4.0 ms | 2072330 2.1 ms | 1.95 +
set<uint32_t>/equal_range | 5552312 5.6 ms | 2314121 2.3 ms | 2.40 +
set<uint32_t>/erase range | 24794 24.8 us | 23397 23.4 us | 1.06
set<uint32_t>/erase/pos | 68654 68.7 us | 65092 65.1 us | 1.05
set<uint32_t>/erase/val | 2953518 3.0 ms | 1313715 1.3 ms | 2.25 +
set<uint32_t>/find | 4101919 4.1 ms | 1883549 1.9 ms | 2.18 +
set<uint32_t>/insert | 5089335 5.1 ms | 2567506 2.6 ms | 1.98 +
set<uint32_t>/iteration | 122013 122.0 us | 109022 109.0 us | 1.12
set<uint32_t>/lower_bound | 3810122 3.8 ms | 1883829 1.9 ms | 2.02 +
set<uint32_t>/upper_bound | 4047652 4.0 ms | 1870908 1.9 ms | 2.16 +
Stanislav
cyberzx 🇷🇺
https://github.com/electronicarts/EASTL
cyberzx 🇷🇺
1. контейнеры реально быстрее аналогичных в STL libstdc++ и libc++. С MSVC STL не проверял, но думаю, тоже быстрее.
2. у нас, например, много платформ: ps4, macos, win, linux. и очень удобно, что код на всех платформах одинаковый.
к тому же можно заюзать С++14 фичи и не париться по поводу того, что их не завезли в STD либу на той или иной платформе
cyberzx 🇷🇺
обычно на маке, айосе всё древнее
Stanislav
Stanislav
1. контейнеры реально быстрее аналогичных в STL libstdc++ и libc++. С MSVC STL не проверял, но думаю, тоже быстрее.
2. у нас, например, много платформ: ps4, macos, win, linux. и очень удобно, что код на всех платформах одинаковый.
к тому же можно заюзать С++14 фичи и не париться по поводу того, что их не завезли в STD либу на той или иной платформе
кроссплатформенность это гуд, да
cyberzx 🇷🇺
Да, добавляют и вполне своевременно. Хотя только stl. потоков, регэкспов, атомиков и прочего там нет
Stanislav
регекспы не оч вышли ) хз зачем взяли это в стандарт
Stanislav
Ioann_
Ioann_
Что много больше цифр у тебя
Ioann_
То есть заполнение разными элементами за 1.78
Ioann_
Не знаю быстрее или нет . Но протести плиз если не сложно тебе
Ioann_
В 1 потоке
cyberzx 🇷🇺
А зачем тебе там вообще красно-чёрное дерево?
Ioann_
Эээээ.... да много зачем. Я ж с сетками работаю :) Так много чего нужно ссортить и поддерживать в балансе.
cyberzx 🇷🇺
Если так нужен cache-friendly и нет или редки удаление объектов, лучше было бы в vector класть
Ioann_
А минимум как искать ?
cyberzx 🇷🇺
отсортировать его. у бинарной сортировки O(logN)
Ioann_
Ну там много вишек разных есть. Я иногда минимум в segment tree ищу
Ioann_
Я все попробую и испробую. Будет выбран самый быстрый вариант.
mkots
Кто-то пробовал писать свою реализацию gre?
Anonymous
но зачем?
Anonymous
хотя можно джаст фо фан, рфц на полтора листа
mkots
Что-бы собрать vpn на базе voip
mkots
Вместо rtp засунуть свой хитрый gre
mkots
Ну и уехать на троллейбусе из хлеба, конечно
Anonymous
в гре нет шифрования, так что из vpn придётся убрать букву p
Arseny
cyberzx 🇷🇺
А что такое реализация по стандарту? Стандарт, обычно, не описывает детали имплементации, а описывает интерфейсы и контракты.
Evgenii
cyberzx 🇷🇺
а кто мешает? )
Arseny
cyberzx 🇷🇺
Такого там нет. Если в стандарте итераторы не должны инвалидироваться, то и в eastl тоже не будут.
Просто реализация с упором на скорость
Evgenii
cyberzx 🇷🇺
а остальные реализации с упором на что?))
Есть множество критериев оптимальности. Скорость, память, размер кода, скорость компиляции и т.д.
Создатели стандартных библиотек стараются не жертвовать чем-то одним в угоду другим и делают код, который всех более менее удовлетворяет
cyberzx 🇷🇺
Во-вторых, как ты себе представляешь контрибьютить в stl?
cyberzx 🇷🇺
Даже для такого гиганта как EA, я слабо представляю себе этот процесс.
Ну вот нашли что-то, что не удовлетворяет gamedev в реализации stl от microsoft. EA к ним приходит такая, надо бы это переделать. У нас в гамедеве такое не катит. В NFS микрофризы и игроки страдают.
А MS их посылает лесом, потому что... да много причин. Им, как минимум, вообще-то плевать
А по мимо MS надо ещё кучу контор обойти. конзоли, линукс код и т.д.
Ioann_
Тут полностью с Ксеноморфом согласен :)
cyberzx 🇷🇺
И ещё три года ждёшь, пока этот патч кто-то примет
cyberzx 🇷🇺
И опять же критерии оптимальности могут быть совершенно разными.
В eastl::string не используется CoW, так как нафиг не нужен он в геймдеве никому.
А может быть кому-то где-то CoW всё таки полезен и нужен.
Evgenii
Burado
Тут кто занимался нейросетями для распозавания? Можете подсказать кое-что, и, если есть возможность, поделиться исходниками?
Evgenii
Burado
Tesseract кароч не подошёл. Мне свою нейросеть над сделать.
Evgenii
Evgenii
а вообще полный гитхаб исходников
Burado
Та ещё бы шарить, что там написано. 70% без комментов.
Burado
Спасибо за конфу. Там гляну.
cyberzx 🇷🇺
прям как в libc++
Прям по всем пунктам описанным здесь? http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html
Evgenii
Ioann_
Велик пилится когда есть такая цель или нужда. Если цель - тр@хнуть каждый бит твоего железа, то вполне полезно если умеешь и написать.
cyberzx 🇷🇺
Ты наверное думаешь, что все раньше писали на STL и страдали, а потом в EA запилии свой STL из-за NIH синдрома?
Нет, STL в геймдеве вообще не использовался. Слишком много у него было проблем для этой области.
Просто в одной из команд EA решили собрать сделать хоть что-то, что бы разработчики не писали свои велосипеды, а использовали хоть что-то приближённое к стандарту. И им это удалось сделать на высоком уровне.
cyberzx 🇷🇺
И кстати EASTL это не просто замена STL, там есть много полезных контейнеров, которых нет в STL.
Evgenii
cyberzx 🇷🇺
Почему же их никто не решил в многомиллиардной индустрии?
Ioann_
А eastl собирать долго :?
Evgenii
cyberzx 🇷🇺
Ioann_
Тада норм - ждите тестов
cyberzx 🇷🇺
https://github.com/electronicarts/EASTL/tree/master/include/EASTL
смотри fixed_*, intrusive_*, vector_* и другие
Ioann_
А set там есть ?
cyberzx 🇷🇺
да