Size: a a a

2021 April 04

Dv

Dr. Friedrich von Ne... in pro.net
Ну а сможет ли её JIT элиминировать или нет — это, как водится, бабушка надвое сказала. JIT хорош, но не всемогущ.
источник

CG

Cat Gn in pro.net
Dr. Friedrich von Never
А ты IL-код сравнивай. Там будет копия.
Вот я не понял, какая команда отвечает за создание копий в IL?
источник

Dv

Dr. Friedrich von Ne... in pro.net
Cat Gn
Вот я не понял, какая команда отвечает за создание копий в IL?
Команда вызова метода.
источник

CG

Cat Gn in pro.net
Dr. Friedrich von Never
Ну а сможет ли её JIT элиминировать или нет — это, как водится, бабушка надвое сказала. JIT хорош, но не всемогущ.
А как тогда проверять работу in?
источник

Dv

Dr. Friedrich von Ne... in pro.net
А, не, там же на стек надо сложить ему аргументы
источник

Dv

Dr. Friedrich von Ne... in pro.net
Cat Gn
А как тогда проверять работу in?
Ну, IL-код читать.
источник

Dv

Dr. Friedrich von Ne... in pro.net
Вернее, смотря какой аспект ты хочешь проверить, и в каких условиях.
источник

CG

Cat Gn in pro.net
Dr. Friedrich von Never
Ну, IL-код читать.
Так если он оптимизирует сам, то зачем время тратить на оптимищацию? ?
источник

Dv

Dr. Friedrich von Ne... in pro.net
То, что в простом примере всё элиминировалось JIT'ом, может быть ответом на твой незаданный вопрос, а может и нет.
источник

Dv

Dr. Friedrich von Ne... in pro.net
Cat Gn
Так если он оптимизирует сам, то зачем время тратить на оптимищацию? ?
В каких условиях оптимизирует?
источник

Dv

Dr. Friedrich von Ne... in pro.net
А твой продакшен-метод, который превышает размеры по лимиту инлайнинга, и бросается исключениями, так же оптимизирует?
источник

Dv

Dr. Friedrich von Ne... in pro.net
Есть семантика языка, а есть гарантии JIT, что он эту семантику не будет нарушать (и на этом всё).
источник

CG

Cat Gn in pro.net
Dr. Friedrich von Never
А твой продакшен-метод, который превышает размеры по лимиту инлайнинга, и бросается исключениями, так же оптимизирует?
Вот хороший вопрос
Поэтому я хочу узнать, как действительно работает оператор на оптимизации
источник

Dv

Dr. Friedrich von Ne... in pro.net
Т.е. если по семантике языка там есть копия, но её наличие ненаблюдаемо снаружи, то JIT может её выбросить, а может и не выбросить.
источник

Dv

Dr. Friedrich von Ne... in pro.net
В каких случаях это важно, а в каких нет — решает программист конечного кода.
источник

CG

Cat Gn in pro.net
Dr. Friedrich von Never
Т.е. если по семантике языка там есть копия, но её наличие ненаблюдаемо снаружи, то JIT может её выбросить, а может и не выбросить.
Я понял, т е мне нужно позаботиться о том, что бы потом использовать параметр в коде дальше, например через Console. WriteLine(); и тогда он не выкинет лишнее, так?
источник

Dv

Dr. Friedrich von Ne... in pro.net
Cat Gn
Я понял, т е мне нужно позаботиться о том, что бы потом использовать параметр в коде дальше, например через Console. WriteLine(); и тогда он не выкинет лишнее, так?
Не могу знать!
источник

Dv

Dr. Friedrich von Ne... in pro.net
Может, будущий (или уже нынешний) JIT умеет и Console.WriteLine инлайнить.
источник

Dv

Dr. Friedrich von Ne... in pro.net
А, может, тебе вообще интересен какой-нибудь ILCPP или Burst, и там вообще всё по-другому, и в рантайме разницы никакой не будет и всегда всё заоптимизируется.
источник

CG

Cat Gn in pro.net
Dr. Friedrich von Never
Не могу знать!
Я понял, значит нужно эмулировать ситуацию в которой он не будет оптимизировать и так проверять
источник