Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.12.2009, 10:00
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 1  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
По умолчанию Как хранится массив в памяти?

Вопрос про оптимизацию.
Если создавать массив заданного размера (Array(100))
это лучше чем неопределенного размера?

Возможно ли создать массив который будет храниться непрерывным куском в памяти?

Старый 11.12.2009, 10:40
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Практически одинаково

Код AS3:
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;
}
Код:
done at: 3607
done at: 3722
Добавлено через 2 часа 17 минут
Здесь ещё можно почитать. Занятная статья.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 11.12.2009 в 10:48. Причина: Исправил на прямой счетчик
Старый 11.12.2009, 18:12
jpauclair вне форума Посмотреть профиль Отправить личное сообщение для jpauclair Найти все сообщения от jpauclair
  № 3  
Ответить с цитированием
jpauclair

Регистрация: 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.

Старый 11.12.2009, 18:29
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Забей, дружище =))

Добавлено через 13 минут
done at: 1932
done at: 1837

Разницы между ними один фиг нет.

I feel no difference between this two values.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 11.12.2009 в 18:49.
Старый 11.12.2009, 20:11
jpauclair вне форума Посмотреть профиль Отправить личное сообщение для jpauclair Найти все сообщения от jpauclair
  № 5  
Ответить с цитированием
jpauclair

Регистрация: 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.

Старый 12.12.2009, 00:09
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
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!
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 12.12.2009 в 02:22.
Старый 12.12.2009, 01:10
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 7  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
what no difference between above cases
Dear dimaric!
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. Причина: Исправил грамматическую ошибку
Старый 12.12.2009, 01:48
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Русский язык для меня родной, в отличие от англицкого. Это к счастью. Ваше замечание учту =) Буду еще больше читать Баррака Обаму в подлиннике.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 12.12.2009 в 02:02. Причина: Исправил орфографические ошибки
Старый 12.12.2009, 02:01
bicubic_bublic вне форума Посмотреть профиль Найти все сообщения от bicubic_bublic
  № 9  
Ответить с цитированием
bicubic_bublic
Banned
[+4 25.09.09]
[+1 12.11.09]
[+4 12.12.09]

Регистрация: Sep 2009
Сообщений: 231
невозможно!

Старый 12.12.2009, 02:04
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 10  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
вот и я о том же. это чат =)

Резюме. Неважно как Вы создаете массив. Массив с заранее объявленной размерностью ведет себя также, как массив с необъявленной размерностью.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 12.12.2009 в 02:20.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:24.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.