|
|
|||||
Как хранится массив в памяти?
Вопрос про оптимизацию.
Если создавать массив заданного размера (Array(100)) это лучше чем неопределенного размера? Возможно ли создать массив который будет храниться непрерывным куском в памяти?
__________________
Сам себе репортер |
|
|||||
.
|
Практически одинаково
var count:uint = 2e7; var arr2:Array = new Array(); this.testBody(count, arr2); var arr1:Array = new Array(count + 1); this.testBody(count, arr1); function testBody(loopCount:uint, arr:Array):void { var start:Number = getTimer(); var i:uint; while (i++ < loopCount) { arr[i] = 1; arr[i]; } trace('done at: ' + (getTimer() - start)); arr = null; } Здесь ещё можно почитать. Занятная статья. Последний раз редактировалось dimarik; 11.12.2009 в 10:48. Причина: Исправил на прямой счетчик |
|
|||||
Регистрация: Dec 2009
Сообщений: 2
|
Read the article correctly!
In the code you write, you start the loop at i++ and write the first element at index 1. hence your using a HT. convert your code to: while ( i < loopCount ) { arr [ i ] = 1 ; arr [ i ] ; i++; } see the difference. twice faster. |
|
|||||
.
|
Забей, дружище =))
Добавлено через 13 минут done at: 1932 done at: 1837 Разницы между ними один фиг нет. I feel no difference between this two values. Последний раз редактировалось dimarik; 11.12.2009 в 18:49. |
|
|||||
Регистрация: Dec 2009
Сообщений: 2
|
The post is not about if its faster to preallocate array or not.
It should be faster to preallocate but it's a VERY small difference. The real difference is when you have an array starting at zero and all values are filled. parsing an array of 10000 elements (with nothing at index 0) is a LOT slower than parsing the same array with something at index 0. Test 1: i = 1; while ( i < loopCount ) { arr [ i ] = 1 ; i++; } //Trace the speed here Test 2: i = 0; while ( i < loopCount ) { arr [ i ] = 1 ; i++; } //Trace the speed here Then do the same thing with read. |
|
|||||
.
|
Hi, jpauclair! Thank you for you support! You seems like cool devman =)... But how I can see, the topic's author ask us about how faster works the preallocated array versus null dimension dynamic array. In my test I just showed there are no differences between above cases. Now I think no matter what case we use, only zero index is important! =) Alleluia!
Последний раз редактировалось dimarik; 12.12.2009 в 02:22. |
|
|||||
Цитата:
You'd better say "there's no difference" instead of "what no difference". This is a russian forum, so, please, try to be correct. Just to keep sense of " the most reading people" Best regards me =)
__________________
...вселенская грусть Последний раз редактировалось gloomyBrain; 12.12.2009 в 01:38. Причина: Исправил грамматическую ошибку |
|
|||||
.
|
Русский язык для меня родной, в отличие от англицкого. Это к счастью. Ваше замечание учту =) Буду еще больше читать Баррака Обаму в подлиннике.
Последний раз редактировалось dimarik; 12.12.2009 в 02:02. Причина: Исправил орфографические ошибки |
|
|||||
Banned
[+4 25.09.09]
[+1 12.11.09] [+4 12.12.09] Регистрация: Sep 2009
Сообщений: 231
|
невозможно!
|
|
|||||
.
|
вот и я о том же. это чат =)
Резюме. Неважно как Вы создаете массив. Массив с заранее объявленной размерностью ведет себя также, как массив с необъявленной размерностью. Последний раз редактировалось dimarik; 12.12.2009 в 02:20. |
Часовой пояс GMT +4, время: 01:24. |
|
« Предыдущая тема | Следующая тема » |
|
|