Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
1-100661
Space
2003-07-15 13:48
2003.07.31
ProgressBar


1-100760
tovSuhov
2003-07-16 15:58
2003.07.31
TSaveDialog


3-100560
Вован
2003-07-07 12:35
2003.07.31
Добавляю динамически поле в DataSet а при его открытии


8-100832
SDS
2003-02-28 16:39
2003.07.31
Как создать TMetafileCanvas


9-100528
Eugenex
2003-02-04 10:45
2003.07.31
Почти в тему!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский