Всем привет!
Subj, собственно
Конкретно интересует также следующее:
1. Лучше передавать в метод кучу параметров или 1 объект, их все содержащий?
2. Лучше возвращать из метода out/ref параметры, или 1 объект, их содержащий?
3. ну и вопрос в заголовке
Оставляя в стороне прочие нюансы, интересует только с точки зрения скорости выполнения
Спасибо...
Re: Замедляют ли вызов метода out и ref параметры?
Здравствуйте, 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 параметры?
Здравствуйте, Sharov, Вы писали:
S>3)Ссылки копируются, чего они там могут замедлять
А объект надо сначала создать в куче, а потом GC будет напрягаться.
Так что если у тебя этот метод в каком-нибудь tight loop используется,
я бы сделал на out/ref параметрах.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[3]: Замедляют ли вызов метода out и ref параметры?
Здравствуйте, romangr, Вы писали:
R>А объект надо сначала создать в куче,
Приведу пример.
Замыкание, чтобы передать переменную в люмбда-функцию, каждый раз создаёт фиктивный объект. Что заметно тормозит в упомянутых tight loops.
Re[3]: Замедляют ли вызов метода out и ref параметры?
Здравствуйте, romangr, Вы писали:
R>Здравствуйте, Sharov, Вы писали:
S>>3)Ссылки копируются, чего они там могут замедлять
R>А объект надо сначала создать в куче, а потом GC будет напрягаться. R>Так что если у тебя этот метод в каком-нибудь tight loop используется, R>я бы сделал на out/ref параметрах.
Про создание объектов никто не спорит. Речь о накладных расходах out/ref параметров.
Кодом людям нужно помогать!
Re: Замедляют ли вызов метода out и ref параметры?
Здравствуйте, mDmitriy, Вы писали:
D>Оставляя в стороне прочие нюансы, интересует только с точки зрения скорости выполнения
Всегда можно множество out параметров объединить в один — структуру. Будет быстро и удобно.
out/ref замедляют вызов метода: чтобы получить адрес аргумента его необходимо размещать на стеке (если конечно он уже не размещен в теле класса/массиве), но это замедление настолько мизерно, что им можно в 100% случаев пренебречь.