52700.fb2 Учебник по Haskell - читать онлайн бесплатно полную версию книги . Страница 179

Учебник по Haskell - читать онлайн бесплатно полную версию книги . Страница 179

0.00s elapsed)

MUT

time

0.01s

(

0.01s elapsed)

GC

time

0.01s

(

0.02s elapsed)

EXIT

time

0.00s

(

0.00s elapsed)

Total

time

0.02s

(

0.03s elapsed)

%GC

time

60.0%

(69.5% elapsed)

Alloc rate

1,767,939,507 bytes per MUT second

Productivity

40.0% of total user, 26.0% of total elapsed

Был распечатан результат и отчёт о работе программы. Разберёмся с показателями:

bytes allocated in the heap

-- число байтов выделенных в куче

-- за всё время работы программы

bytes copied during GC

-- число скопированных байтов

-- за всё время работы программы

bytes maximum residency

-- в каком объёме памяти работала программа

-- в скобках указано число глубоких очисток

bytes maximum slop

-- максимум потерь памяти из-за фрагментации

total memory in use

-- сколько всего памяти было запрошено у ОС

Показатель bytes maximum residency измеряется только при глубокой очистке, поскольку новая память

выделяется именно в этот момент. Размер памяти выделенной в куче гораздо больше общего объёма памяти.

Так происходит потому, что этот показатель указывает на общее число памяти в куче за всё время работы

программы. Ведь мы переиспользуем не нужную нам память. По этому показателю можно судить о том,

сколько замыканий (объектов) было выделено в куче.

Следующие две строчки говорят о числе сборок мусора. Мы видим, что GC выполнил 21 поверхностную

очистку (поколение 0) и 3 глубоких (покколение 1). Дальше идут показатели скорости. INIT и EXIT – это