С каким шагом делать ReDim массиву лонгов?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

С каким шагом делать ReDim массиву лонгов?

Сообщение arthur2 » 06.12.2010 (Пн) 16:30

На сколько я представляю себе, редимить массив нужно с определенным шагом, меньше которого просто нет смысла (потому что памяти всё равно столько же будет использовано). И чтобы память выделялась оптимально, шаг должен быть кратным чему-то... В общем, что-то такое (слышал где-то звон :oops: )

Массив лонгов.
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: С каким шагом делать ReDim массиву лонгов?

Сообщение Хакер » 06.12.2010 (Пн) 16:50

Куча выделяется кусками произвольной длины.
Память выделяется страницами (4 кб или 2 мб или 4 мб).

Оптимальная методика (минимизация количества реаллокаций) при заранее неизвестном и непредугадываемом размере — всякий раз увеличивать размер массива ровно в два раза.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: С каким шагом делать ReDim массиву лонгов?

Сообщение arthur2 » 06.12.2010 (Пн) 16:58

Спасибо :)
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: С каким шагом делать ReDim массиву лонгов?

Сообщение Хакер » 06.12.2010 (Пн) 19:44

К слову, если выделить массив, в два раза больший, чем он был, не получается, надо пытаться выделить хотя бы столько, сколько нужно для сохранения новых данных. Когда память будет на исходе — получается неоптимально, но программа до последнего будет пытаться отработать без сбоя.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 129

    TopList