Это слишком много кода для тщательного изучения.
Некоторые общие рекомендации: Оцените, сколько памяти вы ожидаете от использования. Используется ли использование памяти, когда она работает, или она перестает расти в какой-то момент? Если он постоянно растет, у вас, вероятно, есть утечка. Там есть пакеты, которые помогут вам отслеживать, где он протекает, или убедитесь, что вы используете RAII (например, shared_ptr
) для управления вашей памятью. Если память держится на большом количестве, вы можете пересмотреть свой алгоритм и посмотреть, где используется память. Вы выделяете много дубликатов данных?
Что касается использования ЦП, единственный способ выяснить, где идет время, - профилировать ваше приложение и посмотреть, где профайлер говорит, что процессор расходуется. Затем вы можете подойти к этой меньшей части кода и определить, как ее улучшить. Наиболее вероятными улучшениями являются поиск полиномиальных (или худших) алгоритмов времени и их субполиномиальное время.
1) Отклоните свой код. 2) См. Справку по ее форматированию при отправке в Stack Overflow. 3) Ограничьте свой код до раздела проблем или используйте его, если это абсолютно необходимо, но не сбрасывайте всю неформатированную проблему на SO. Если вы хотите, чтобы мы помогли вам, облегчите нам помощь. – Thanatos
отформатирован (какой беспорядок ...) –
5 МБ памяти не огромен. –