170 похожих чатов

Теряется ли производительность при использовании геттера? Который указывает на ссылку

из другого объекта.
Или лучше использовать копию ссылки?

Если у меня есть List в одном объекте, и его надо супер много где использовать из другого объекта, в котором он уже определён как поле.
Эффективнее назначать это поле через Property = Object.List
То есть создавать отдельный экземпляр ссылки.
Или делать через Геттер Get Property => Object.List?

Тут написано что разницы нет. Хотя всё же там прямая ссылка, а у меня на объект..
https://stackoverflow.com/a/9843264

26 ответов

18 просмотров

Там и так копия ссылки

Николай-Threadripper Автор вопроса
Phantom
Там и так копия ссылки

Но там ведь получается 2 обращения, сначала к самому свойству, потом к полю объекта. При List Objects => Object.List; В отличии от List Objects { get; set; } Или List Objects;

это точно самое узкое место у вас?

Николай-Threadripper Автор вопроса
Alex Berezhnykh
это точно самое узкое место у вас?

Нет, это простой вопрос, который много где применяется. В больших масштабах, если не сделать правильно, может повредить. Этим решается другое узкое место. Много объектов должны очень часто обращаться к свойству одного объекта.

Николай Threadripper
Нет, это простой вопрос, который много где применя...

» В больших масштабах, если не сделать правильно, может повредить. мне кажется, что нет.

Николай-Threadripper Автор вопроса
Phantom
Покажи код

Так вот в этом сообщении же он и описан. Есть объект Object, в нём List, и много других объектов много где должны использовать ссылку из него. При том что раньше у каждого объекта было своё свойство, а теперь надо что бы использовалось одно общее, из одного объекта.

если вам так важно, вы можете написать бенчмарк с BenchmarkDotNet

Николай-Threadripper Автор вопроса
Phantom
Так, там разница очень мала

Но если даже от неё можно избавиться всего 1 принципом, то почему бы и нет?

Николай-Threadripper Автор вопроса
Phantom
Заменой свойства на поле?

Созданием копии ссылки, что бы в свойстве (после компиляции - поле) лежала прямая ссылка на массив(List), а не обращение сначала к объекту, а потом к его свойству.

Николай Threadripper
Но если даже от неё можно избавиться всего 1 принц...

Пушо это может запутывать читателя например а выхлоп минимальный

вы не поверите, но это одно и то же.

Alex Berezhnykh
это точно самое узкое место у вас?

Я уже это говорила в другом контексте но я сплю и вижу как это офигенно сказывается на летенси по сравнению с запросами в базку и хттп))

Liza 丽莎
Я уже это говорила в другом контексте но я сплю и ...

Не сказывается, проверено опытным путем в том числе))

Николай Threadripper
Но там ведь получается 2 обращения, сначала к само...

Джит такое может заинлайнить на n-ой итерации. В общем BenchmarkDotNet в руки. Все будет ясно

Николай-Threadripper Автор вопроса
Rustam
Джит такое может заинлайнить на n-ой итерации. В о...

Обязательно буду практиковаться и привыкать в ближайшее время. Решит огромное количество вопросов. Буду экспериментировать со всем.

Николай Threadripper
Обязательно буду практиковаться и привыкать в ближ...

Зачем Switch с Dictionary сравнивать, Разные сценарии использования . Вот посмотри. может после прочтения Stephen много вопросов отпадет

Николай-Threadripper Автор вопроса
AN
Зачем Switch с Dictionary сравнивать, Разные сцен...

Оказывается внутри и так switch в Dictionary превращается. 👌

Николай Threadripper
Оказывается внутри и так switch в Dictionary превр...

https://github.com/microsoft/referencesource/blob/master/mscorlib/system/collections/generic/dictionary.cs

Николай-Threadripper Автор вопроса

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта