Связана ли производительность IL с размером кода?

При взгляде на промежуточный язык каждая инструкция имеет определенный размер байта.

Если у меня есть метод с общим размером кода (сумма размеров инструкций) 10 байт и метод с общим размером кода 20 байт, могу ли я предположить, что первый выполняется быстрее?

Я не знаю, как IL преобразуется в машинный код, и поэтому я думаю, что производительность зависит от самой инструкции IL и не связана напрямую с ее размером в байтах.

Связано ли время выполнения IL напрямую с размером кода?


person Jaanus Varus    schedule 24.04.2013    source источник
comment
это может быть связано с этим более ранним вопросом: asse/" title="как сравнить две реализации одного и того же алгоритма, изучив их ассе"> stackoverflow.com/questions/14937815/   -  person Floris    schedule 24.04.2013
comment
IL для бесконечного цикла может быть довольно маленьким!   -  person Matthew Strawbridge    schedule 24.04.2013


Ответы (1)


Связано ли время выполнения IL напрямую с размером кода?

Нет. Наивно кажется, что это должно быть правдой, но на самом деле все гораздо сложнее.

Оно варьируется в зависимости от конкретного случая. Вот почему невозможно дать «правила» оптимизации кода. Нельзя делать наивные предположения о том, что будет быстрее. Вам просто нужно протестировать различные варианты на вашей целевой архитектуре и посмотреть, какой из них на самом деле быстрее.

person Cody Gray    schedule 24.04.2013