Главная страница
    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.007 c
1-100815
tovSuhov
2003-07-17 15:23
2003.07.31
TListView и выделение...


11-100655
oleg_poligon
2002-11-24 11:47
2003.07.31
Работа с KOLSocket


1-100750
Arhangel
2003-07-16 12:23
2003.07.31
Button1 динамически


14-100973
blackman
2003-07-15 16:06
2003.07.31
We wish pleasant programming!


14-100878
ss300
2003-07-15 09:40
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский