×
Namespaces

Variants
Actions

Зерно (Granularity)

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Статья
Перевод:
Оригинал: Granularity
truf
Последнее редактирование: hamishwillee (09 Dec 2011)

Contents

Введение

Зерно (Granularity) - термин, применяющийся сразу в нескольких областях информатики (в основном в компьютерной графике). В общем случае обозначает наименьший объем или наименьшее количество чего либо. В частности, зерном можно назвать кластер файловой системы.

Зернистость, применительно к массивам

Очень важно выбрать зерно массива в соответствии с ожидаемым характером его использования. Если зерно выбрать слишком маленьким, то при добавлении большого количества элементов в массив, память будет выделяться слишком часто. Это может сказаться на производительности. А если зерно выбрать слишком большим, то под новые элементы массива будет выделен объем памяти, который не будет использоваться полностью.

Пример

// Здесь зерно равно 10
CDesCArrayFlat* Array = new (ELeave) CDesCArrayFlat(10);
CleanupStack::PushL(Array);

Если вы создаете массив с зерном 10, то для хранения массива всегда будет выделяться объем памяти, кратный памяти, занимаемой 10 элементами массива. Т.е. даже если вы добавите один элемент, памяти будет выделено под десять элементов (90% выделенной памяти не будет использовано). Но при добавлении последующих 9 элементов память выделяться не будет, а элементы будут располагаться в уже выделенном объеме памяти. Это позволяет экономить время при добавлении элементов. Если в вашем массиве уже есть 10 элементов, и вы добавите еще один - то под массив будет выделена дополнительная память еще на 10 элементов.

Программы, выполняющихся на мобильных устройствах, часто сталкиваются с нехваткой памяти. Поэтому, выбор правильного зерна массива очень важен. Использование слишком большого значения приведет к напрасной трате памяти, а слишком маленького - к трате процессорного времени (время затрачиваемое на выделение памяти).

Ссылки

This page was last modified on 9 December 2011, at 05:01.
76 page views in the last 30 days.
×