Замедляют ли вызов метода out и ref параметры?
От: mDmitriy Россия  
Дата: 03.05.17 09:53
Оценка:
Всем привет!
Subj, собственно
Конкретно интересует также следующее:
1. Лучше передавать в метод кучу параметров или 1 объект, их все содержащий?
2. Лучше возвращать из метода out/ref параметры, или 1 объект, их содержащий?
3. ну и вопрос в заголовке
Оставляя в стороне прочие нюансы, интересует только с точки зрения скорости выполнения

Спасибо...
Re: Замедляют ли вызов метода out и ref параметры?
От: Sharov Россия  
Дата: 03.05.17 10:49
Оценка: 3 (1)
Здравствуйте, mDmitriy, Вы писали:

D>Всем привет!

D>Subj, собственно
D>Конкретно интересует также следующее:
D>1. Лучше передавать в метод кучу параметров или 1 объект, их все содержащий?
D>2. Лучше возвращать из метода out/ref параметры, или 1 объект, их содержащий?
D>3. ну и вопрос в заголовке
D>Оставляя в стороне прочие нюансы, интересует только с точки зрения скорости выполнения

D>Спасибо...


1)Больше 5 уже наверное лучше в объект отрефакторить.
2)Однозначно 1 объект. С out/ref можно на грабли наступить.
3)Ссылки копируются, чего они там могут замедлять
Кодом людям нужно помогать!
Re[2]: Замедляют ли вызов метода out и ref параметры?
От: romangr Россия  
Дата: 03.05.17 11:21
Оценка: 3 (1)
Здравствуйте, Sharov, Вы писали:

S>3)Ссылки копируются, чего они там могут замедлять


А объект надо сначала создать в куче, а потом GC будет напрягаться.
Так что если у тебя этот метод в каком-нибудь tight loop используется,
я бы сделал на out/ref параметрах.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[3]: Замедляют ли вызов метода out и ref параметры?
От: Mihas  
Дата: 03.05.17 11:34
Оценка: 3 (1)
Здравствуйте, romangr, Вы писали:

R>А объект надо сначала создать в куче,

Приведу пример.
Замыкание, чтобы передать переменную в люмбда-функцию, каждый раз создаёт фиктивный объект. Что заметно тормозит в упомянутых tight loops.
Re[3]: Замедляют ли вызов метода out и ref параметры?
От: Sharov Россия  
Дата: 03.05.17 11:48
Оценка: 3 (1)
Здравствуйте, romangr, Вы писали:

R>Здравствуйте, Sharov, Вы писали:


S>>3)Ссылки копируются, чего они там могут замедлять


R>А объект надо сначала создать в куче, а потом GC будет напрягаться.

R>Так что если у тебя этот метод в каком-нибудь tight loop используется,
R>я бы сделал на out/ref параметрах.

Про создание объектов никто не спорит. Речь о накладных расходах out/ref параметров.
Кодом людям нужно помогать!
Re: Замедляют ли вызов метода out и ref параметры?
От: hardcase Пират http://nemerle.org
Дата: 03.05.17 13:36
Оценка: 3 (1)
Здравствуйте, mDmitriy, Вы писали:

D>Оставляя в стороне прочие нюансы, интересует только с точки зрения скорости выполнения


Всегда можно множество out параметров объединить в один — структуру. Будет быстро и удобно.
out/ref замедляют вызов метода: чтобы получить адрес аргумента его необходимо размещать на стеке (если конечно он уже не размещен в теле класса/массиве), но это замедление настолько мизерно, что им можно в 100% случаев пренебречь.
/* иЗвиНите зА неРовнЫй поЧерК */
Отредактировано 03.05.2017 13:42 hardcase . Предыдущая версия . Еще …
Отредактировано 03.05.2017 13:39 hardcase . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.