Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: 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 вся ветка

Текущий архив: 2003.07.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
14-100923
2609
2003-07-13 03:20
2003.07.31
тестовая программа


4-101027
Шишкин Илья
2003-05-28 16:42
2003.07.31
Как лучше закрыть чужое приложение?


1-100685
Anatoly P
2003-07-15 16:23
2003.07.31
MB_ICON...


1-100773
Makhanev A.S.
2003-07-16 23:19
2003.07.31
Повторное чтение файлов...


4-101016
vano_2003
2003-05-27 14:52
2003.07.31
список процессов task manager`a