Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 22.01.2010, 22:00   #1
dector
Модератор
 
Регистрация: 21.12.2006
Сообщений: 564
Написано 79 полезных сообщений
(для 203 пользователей)
Сообщение Скорость доступа к елементам массива и переменным

Интересует вопрос:
Рознится ли скорость исполнения команд:
M[1][1]:=10;
и
N:=10;
?

И то, и то - ячейка в памяти. Но считаю, что вычисление адреса ячейки массива занимает время большее.
Фактически,
ADDR=MASSIVE_START+SIZE_OF_DATA_TYPE*(VECTOR_SIZE*VECTOR_COUNT+ELEMENT_NUM)
(Offline)
 
Ответить с цитированием
Старый 22.01.2010, 22:11   #2
jimon
 
Сообщений: n/a
Ответ: Скорость доступа к елементам массива и переменным

dector
в зависимости от компилятора, компиляторы C++, если возможно, подсчитают адрес во время компиляции и производительность будет такая же, другой вопрос где хранится эта переменная, локальные переменные в стеке хранятся, от этого тоже скорость будет зависеть
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dector (23.01.2010)
Старый 22.01.2010, 22:14   #3
dector
Модератор
 
Регистрация: 21.12.2006
Сообщений: 564
Написано 79 полезных сообщений
(для 203 пользователей)
Ответ: Скорость доступа к елементам массива и переменным

Увы, компилятор - Borland Pascal.
(Offline)
 
Ответить с цитированием
Старый 23.01.2010, 14:02   #4
Tronix
Знающий
 
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений
(для 331 пользователей)
Ответ: Скорость доступа к елементам массива и переменным

Сообщение от dector Посмотреть сообщение
Увы, компилятор - Borland Pascal.
В приведенном выше случае - одинаково:

Var
   
: Array [1..5,1..5of Integer;
   
Integer;
Begin
     asm
     nop
     nop
     nop
     end
;
     
M[1,1] := 10;
     
asm
     nop
     nop
     nop
     end
;
     
:= 10;
     
asm
     nop
     nop
     nop
     end

 00000048: 90                           nop
 00000049: 90                           nop
 0000004A: 90                           nop
 0000004B: C70650000A00                 mov       w,[00050],0000A ;" ◙"
 00000051: 90                           nop
 00000052: 90                           nop
 00000053: 90                           nop
 00000054: C70682000A00                 mov       w,[00082],0000A ;" ◙"
 0000005A: 90                           nop
 0000005B: 90                           nop
 0000005C: 90                           nop
Но в целом, работа с массивами естественно медленнее, особенно когда индексы зависят от какой-то переменной (M[i],[j] := i, например).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dector (23.01.2010)
Старый 23.01.2010, 15:43   #5
dector
Модератор
 
Регистрация: 21.12.2006
Сообщений: 564
Написано 79 полезных сообщений
(для 203 пользователей)
Ответ: Скорость доступа к елементам массива и переменным

Все, спасибо. Теперь ясно
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com