Я пытаюсь профилировать свое приложение. При анализе использования памяти с опцией -hc
RTS я заметил большую память, отмеченную как PINNED. При работе с -hy
память помечена как ARR_WORDS
.
Программа создает матрицу удвоений 2400 × 2400, используя модуль Data.Packed.Matrix
из пакета hmatrix, и поскольку элементы в ней должны храниться в непрерывной памяти, я не вижу способа, чтобы матрица так сильно занялась пространство.
Мой вопрос: что означает слово PINNED? Также есть ли способ получить дополнительную информацию о том, почему и где используется память?
Весь исходный код, о котором идет речь, на GitHub, должен кого-то интересовать. Тем не менее, это очень далекий от минимального примера.