Вниз
Скачать: CL | DM;

Что будет работать быстрее?   Найти похожие ветки 

← →
LongIsland ©   (2003-07-18 14:19) [0]

Ситуация такая. Есть массив определенного размера. Он должен передаваться в процедуру, в которой в процессе вычислений он будет изменяться.
Как лучше поступить, передавать в процедуру указатель на него и создавать копию (забыл сказать, что исходный массив меняться не должен) или передавать весь массив?


← →
Axis_of_Evil ©   (2003-07-18 14:23) [1]

Наверное указатель + Copy в BufferМассив, который будет
изменяться.
Я так делаю.


← →
Юрий Федоров ©   (2003-07-18 14:25) [2]

Наверно стоит замерить время в обоих случаях.
Хотя имхо, тут разница будет в "копейках"


← →
Legran   (2003-07-18 14:25) [3]

TLIST f1


← →
Толик ©   (2003-07-18 14:27) [4]

Я бы его по ссылке передал (var).
В любом случае, создание копии - дорогое удовольствие, а если учесть то, что он будет меняться - то и бесполезное, т.к. будет менятся копия массива, а не сам массив.


← →
Anatoly Podgoretsky ©   (2003-07-18 14:27) [5]

При использовании одинаковых алгоритмов вряд ли удастся замерить


← →
Skier ©   (2003-07-18 14:27) [6]

>LongIsland © (18.07.03 14:19)

> Есть массив определенного размера

Какого ?


← →
Толик ©   (2003-07-18 14:28) [7]

Сорри, не заметил, что исходный массив меняться НЕ должен...
Ессно var не подходит...


← →
LongIsland ©   (2003-07-18 14:42) [8]

> Skier © (18.07.03 14:27)
Довольно большой массив записей примерно 1000х1000

> Legran (18.07.03 14:25)
Спасибо, я знаю, что такое TList

Значит, пока мнение сводится к тому, что передача копии через стек и копирование происходит за примерно одинаковое время?


← →
Skier ©   (2003-07-18 14:46) [9]

>LongIsland © (18.07.03 14:42)

> Значит, пока мнение сводится к тому, что передача копии
> через стек и копирование происходит за примерно одинаковое
> время?

На таком размере уже вряд ли...И кроме того не известно может
быть эта процедура будет тобой использоваться в длинном цикле,тогда разница будет ощутимой.

Не расскажешь поподробнее об этой процедуре, может быть найдутся другие пути решения, без передачи по значению...


← →
Юрий Федоров ©   (2003-07-18 14:47) [10]

>>LongIsland © (18.07.03 14:42)
На такой массив стека может не хватить


← →
LongIsland ©   (2003-07-18 14:55) [11]

> Skier © (18.07.03 14:46)

Да спасибо, над алгоритмом я сам помучаюсь :-)

Мне интересно было только именно, что будет быстрее


← →
Anatoly Podgoretsky ©   (2003-07-18 15:04) [12]

Массив оригинал и Массмв копия должен быть глобальными переменными или динамическими массивами.
Время абсолютно одинаковое, разве, что на пару наносекунд будут различаться. При том никакой потримизации это не подлежит, поскольку 99.9999% уйдет на копирование массива.


← →
LongIsland ©   (2003-07-18 15:11) [13]

> Anatoly Podgoretsky © (18.07.03 15:04)

Это мысль, спасибо!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
3-100530
Skalp
2003-07-07 14:42
2003.07.31
Блокировка


1-100746
Катерина
2003-07-15 17:42
2003.07.31
TChart


1-100827
Алексей
2003-07-17 18:21
2003.07.31
DLL не найдена


6-100870
Леопольд (К)
2003-05-24 10:37
2003.07.31
Всётаки фрейм


14-100879
avch
2003-07-16 10:13
2003.07.31
Доступ к библиотеке...




   Наверх