Как следует из названия, я использую Wt для создания форума. Предполагается, что это часть большого проекта (и тем временем это дает мне возможность лучше изучить Wt, прежде чем переходить к самой сложной части проекта).
Проблема в том, что когда я запускаю сервер, ему требуется около 1,5 ГБ.
В данный момент я не использую изображения, медиа или другие варианты. Только "обычные" (имеется в виду html+текст+javascript) виджеты, комбинируя их для создания более сложных виджетов, DBO и множество шаблонов.
Такое использование памяти кажется нормальным для WT-приложения? Если нет, есть ли способ профилировать использование памяти функциями, структурами данных и кодом (с процентами и т. д., как мы можем сделать с профилировщиком времени)?
Видимо, по словам Валгринда, у меня нет утечек.
==13061== Memcheck, детектор ошибок памяти
==13061== Copyright (C) 2002–2015, GNU GPL, Джулиан Сьюард и др.
==13061== Использование Valgrind- 3.11.0 и LibVEX; повторно запустите с -h для получения информации об авторских правах
==13061== Команда: ./GameServer --docroot=. --http-address 0.0.0.0 --http-port 8080
==13061== Родительский PID: 13060
==13061==
==13061==
==13061== ОБЩИЕ СВЕДЕНИЯ О КУЧЕ:
==13061== используется на выходе: 111 172 байта в 243 блоках
==13061== общее использование кучи: 271 492 выделения памяти, 271 249 освобождений, выделено 1 545 796 300 байт
==13061==
==13061== ОБЗОР УТЕЧКИ:
==13061== определенно потеряно: 0 байт в 0 блоках
==13061== косвенно потеряно: 0 байт в 0 блоках
==13061= = возможно потеряно: 0 байт в 0 блоках
==13061== все еще доступно: 109 820 байт в 225 блоках
==13061== из которых доступно с помощью эвристики:
==13061== новый массив : 1536 байтов в 16 блоках
==13061== подавлено: 1352 байта в 18 блоках
==13061== Доступные блоки (те, на которые был найден указатель) не показаны.
==13061== Чтобы увидеть их, повторно запустите: --leak-check=full --show-leak-kinds=all
==13061==
==13061== ts обнаруженных и подавленных ошибок, повторите с: -v
==13061== СВОДКА ОШИБОК: 0 ошибок из 0 контекстов (подавлено: 18 из 18)
Редактировать: чтобы ответить на вопрос Хейта: это действительно начинается с такого большого использования. Хотя я действительно полностью и широко использую контейнеры для мгновенного сохранения данных (например, из запросов к БД, но ничего, что могло бы оправдать такой большой объем памяти, поскольку весь файл БД на данный момент составляет всего 80 КБ), использование памяти не не увеличивается со временем, и увеличение со вторым пользователем незначительно (системный монитор подтверждает 1,4 ГБ в начале, после того, как я несколько раз обновил веб-страницу от пользователя_1 и после того, как я вошел в систему с пользователем_2).
Edit2: используя valgrind с инструментом массива, я обнаружил проблему: это была другая часть приложения, совершенно не связанная с WT.