Namespaces
Variants
Actions

Зерно (Granularity)

Jump to: navigation, search
Метаданные

Статья
Перевод:
Оригинал: Granularity
Последнее редактирование: 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.
86 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved