История изменений
Исправление
stevejobs,
(текущая версия)
:
представь какую-нибудь типичную задачу типа высокочастотной аналитики, данных порождается так много, что удалять их нету времени - нужно пакетизировать их и отложенно удалять пачками. Причем если вдруг данные могут потребоваться назад, то нужно делить память на приоритетные блоки (тут начинаются махинации с поколениями итп)
погляди на что у тебя уходит память: скорей всего там 80% строк, которые можно и нужно уплотнять в долгоживущий пул строк. Например если это поисковый движок - то пользователи постоянно вводят в строку поиска одинаковые запросы, их нужно пулировать. ОСОБЕННО учитывая, какое говно в C++ строки. Но если ты каждый раз будешь пулировать определенные типы, то таким образом получится не generic код, где ты каждый раз обрабатываешь разные типы вручную - а это goвнго, код должен быть суперобобщенным
Потом начнутся циклические ссылки, дефрагментация памяти, отложенная и частичная дефрагментация, отладка блокировок, отладка блокировок для многопоточного случая, итд итп, и занимаясь бесконечными тоннами предварительной ручной оптимизации ты уже и забудешь, что изначально написать хотел :-)
Исходная версия
stevejobs,
:
представь какую-нибудь типичную задачу типа высокочастотной аналитики, данных порождается так много, что удалять их нету времени - нужно пакетизировать их и отложенно удалять пачками. Причем если вдруг данные могут потребоваться назад, то нужно делить память на приоритетные блоки (тут начинаются махинации с поколениями итп)
погляди на что у тебя уходит память: скорей всего там 80% строк, которые можно и нужно уплотнять в долгоживущий пул строк. Например если это поисковый движок - то пользователи постоянно вводят в строку поиска одинаковые запросы, их нужно пулировать. Но если ты каждый раз будешь пулировать определенные типы, то таким образом получится не generic код, где ты каждый раз обрабатываешь разные типы вручную - а это goвнго, код должен быть суперобобщенным
Потом начнутся циклические ссылки, дефрагментация памяти, отложенная и частичная дефрагментация, отладка блокировок, отладка блокировок для многопоточного случая, итд итп, и занимаясь бесконечными тоннами предварительной ручной оптимизации ты уже и забудешь, что изначально написать хотел :-)