Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Зерно (Granularity)

From 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 02:01.
261 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×