Why is reflection slow?
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.12.16 02:56
Оценка: 82 (8) +1
http://mattwarren.org/2016/12/14/Why-is-Reflection-slow/
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Why is reflection slow?
От: Jack128  
Дата: 15.12.16 06:53
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>http://mattwarren.org/2016/12/14/Why-is-Reflection-slow/


Было бы интересно, если в IL Emit он генерил именно Func<object, object>, чтоб сравнение "IL Emit" vs "Expression Trees" было корректное. Хотя все равно непонятно отставание аж в 4 раза.
Re[2]: Why is reflection slow?
От: Sinix  
Дата: 15.12.16 06:59
Оценка:
Здравствуйте, Jack128, Вы писали:

J>Было бы интересно, если в IL Emit он генерил именно Func<object, object>, чтоб сравнение "IL Emit" vs "Expression Trees" было корректное. Хотя все равно непонятно отставание аж в 4 раза.


Там нет отставания, там код разный, в комментариях по ссылке отписал.
Re[3]: Why is reflection slow?
От: Jack128  
Дата: 15.12.16 07:06
Оценка:
Здравствуйте, Sinix, Вы писали:

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


J>>Было бы интересно, если в IL Emit он генерил именно Func<object, object>, чтоб сравнение "IL Emit" vs "Expression Trees" было корректное. Хотя все равно непонятно отставание аж в 4 раза.


S>Там нет отставания, там код разный, в комментариях по ссылке отписал.


Отличие Emit'а от Trees только в касте string->object. Входящий object к TestClass кастуют оба варианта.
Так вот и не понятно, как каст строки к object (ИМХО для такой каст на уровне маш кода вообще исчезнуть должен) так сильно на производительность влияет
Re[4]: Why is reflection slow?
От: Sinix  
Дата: 15.12.16 07:10
Оценка:
Здравствуйте, Jack128, Вы писали:

J>Отличие Emit'а от Trees только в касте string->object. Входящий object к TestClass кастуют оба варианта.

А если код посмотреть?
Re[5]: Why is reflection slow?
От: Jack128  
Дата: 15.12.16 07:18
Оценка:
Здравствуйте, Sinix, Вы писали:

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


J>>Отличие Emit'а от Trees только в касте string->object. Входящий object к TestClass кастуют оба варианта.

S>А если код посмотреть?

А. В коде пишет одно, в статье описывает совсем другое. Бывает..
Хотя все равно, (говорим о коде на гитхаб) не понятно тогда, почему emit в 1,5 раза медленнее делегата.
Re: Why is reflection slow?
От: hardcase Пират http://nemerle.org
Дата: 15.12.16 08:51
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>http://mattwarren.org/2016/12/14/Why-is-Reflection-slow/


Какая-то чушь в измерениях. Зачем передавать object, а не статически известный тип. Зачем было приплетать левые библиотеки, если IL получения свойства совершенно нетрудно написать напрямую.
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Why is reflection slow?
От: Kolesiki  
Дата: 15.12.16 10:40
Оценка:
Так почему медленно-то? Из-за того, что в попытке "обезопаситься от всего и вся" наворотили много ненужного кода? Ну, учитывая, какие там работают космические архитекторы, не удивлён — один WPF чего стоит!

А вот в D есть traits, та же рефлексия, но времени компиляции. Но это никому не нужно, "патамучта изык сырой, библиатек многа, я низнаю чё делать, а-а-аа-!".
Re[2]: Why is reflection slow?
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.12.16 15:22
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Какая-то чушь в измерениях. Зачем передавать object, а не статически известный тип. Зачем было приплетать левые библиотеки, если IL получения свойства совершенно нетрудно написать напрямую.


Каст объекта от класса не дорогое занятие, а библиотека используется только при инициализации. Зато коротко и красиво получилось.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Why is reflection slow?
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.12.16 15:24
Оценка: +1
Здравствуйте, Kolesiki, Вы писали:

K>А вот в D есть traits, та же рефлексия, но времени компиляции. Но это никому не нужно, "патамучта изык сырой, библиатек многа, я низнаю чё делать, а-а-аа-!".


Та же фигня и Немерлом. Язык не той системы. 1. Не от Майкрософт. 2. Нет комьюнити потому что п. 1.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.