Я » m программирование игрового движка на C ++, который также поддерживает Lua.
Мой самый большой ужас: утечки памяти.
Не похоже, что моя игра уже заражена ими, я боюсь, что они выскочат из-под земли как грибы, когда разработка находится на поздней стадии, а проект огромен и сложен.
Я боюсь их, потому что мне кажется, что их очень трудно обнаружить. Особенно в сложных системах. Что я буду делать, если мой движок почти закончен, игра запускается и память съедается? С чего начать поиск?
Посмотрев на код сита простых чисел и увидев, как параллельная структура работает, я нашел ее чрезвычайно элегантной. Однако он также крайне неэффективен, и IIRC, эквивалентный O (n ^ 2) операция проверки делимости числа m на разделив его на каждое число меньше m. Я полагаю, что мог бы вместо этого измените его, чтобы использовать операцию O (n ^ 1.5) проверки делимости m, разделив его на каждое число, меньшее или равное sqrt (m). Однако это оказалось намного сложнее, чем я ожидал.
Я знаю, что это скорее вопрос алгоритмики, но это также и один чрезвычайно актуален для параллелизма. Как бы реализовать O (n ^ 1.5) версия алгоритма?