This page was last modified 14:07, 28 October 2007.
Зерно (Granularity)
From Forum Nokia Wiki
Перевод с английского, оригинальная статья находится здесь.
Contents |
Введение
Зерно (Granularity) - термин, применяющийся сразу в нескольких областях информатики (в основном в компьютерной графике). В общем случае обозначает наименьший объем или наименьшее количество чего либо. В частности, зерном можно назвать кластер файловой системы.
Зернистость, применительно к массивам
Очень важно выбрать зерно массива в соответствии с ожидаемым характером его использования. Если зерно выбрать слишком маленьким, то при добавлении большого количества элементов в массив, память будет выделяться слишком часто. Это может сказаться на производительности. А если зерно выбрать слишком большим, то под новые элементы массива будет выделен объем памяти, который не будет использоваться полностью.
Пример
// Здесь зерно равно 10 CDesCArrayFlat* Array = new (ELeave) CDesCArrayFlat(10); CleanupStack::PushL(Array);
Если вы создаете массив с зерном 10, то для хранения массива всегда будет выделяться объем памяти, кратный памяти, занимаемой 10 элементами массива. Т.е. даже если вы добавите один элемент, памяти будет выделено под десять элементов (90% выделенной памяти не будет использовано). Но при добавлении последующих 9 элементов память выделяться не будет, а элементы будут располагаться в уже выделенном объеме памяти. Это позволяет экономить время при добавлении элементов. Если в вашем массиве уже есть 10 элементов, и вы добавите еще один - то под массив будет выделена дополнительная память еще на 10 элементов.
Программы, выполняющихся на мобильных устройствах, часто сталкиваются с нехваткой памяти. Поэтому, выбор правильного зерна массива очень важен. Использование слишком большого значения приведет к напрасной трате памяти, а слишком маленького - к трате процессорного времени (время затрачиваемое на выделение памяти).
Ссылки
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| 6101 Alarm sound set (PIM api) | iea@e-infonor.com | General Browsing | 7 | 2007-06-12 19:27 |
| Strange horiz. stripes on 7650?? | cyphre666 | Mobile Java Media (Graphics & Sounds) | 3 | 2003-09-19 09:35 |
| Address book match | vinayakak | General Symbian C++ | 3 | 2008-05-30 08:23 |
| PIM Documentation Error? | brendan.mckenna | Mobile Java Tools & SDKs | 1 | 2007-05-08 09:00 |
| Frame skip and currentTimeMillis() granularity | inverse | Mobile Java General | 1 | 2005-08-14 00:00 |
