عنوان:

‫معرفی کتابخانه FastMember برای کار با Reflection


نویسنده: محمد جواد ابراهیمی
تاریخ: ۱۳۹۸/۱۰/۲۴ ۱۳:۱۳
آدرس: www.dntips.ir

خیلی از مواقع ما نیاز داریم از Reflection استفاده کنیم اما Reflection به خودی خود نسبت به حالی عادی خیلی کندتر هست و نیاز به نوشتن کد‌های بیشتری دارد.

برای سرعت بیشتر و استفاده راحت‌تر از Reflection میتونین از کتابخانه FastMember استفاده کنین. (بین تست‌های که شخصا داشتم تو سناریو‌های مختلف، FastMember بین 6 تا 96 برابر سریعتر از Reflection معمولی سریع‌تر بود.)

مثلا برای دسترسی به property‌های یک object در runtime با کمک FastMember، خواهیم داشت:

var accessor = ObjectAccessor.Create(obj);
var propName = "MyProperty"
var value = accessor[propName];

نکته :

این کتابخانه کد‌ها IL برنامه رو در runtime تغییر میده، در نتیجه در محیط‌های AOT (مخفف Ahead of Time) مانند Xamarin iOS کار نخواهد کرد.


در مقاله زیر که مقاله جالبی هست توضیح میده، رفلکشن چطور کار میکنه و چرا کند هست

سپس به روش‌های افزایش پرفرمنس رفلکشن اشاره میکنه و در آخر بنچمارکی از نتیجه اونها رو نشون میده

Why Reflection Is Slow  



مشاهده مطلب اصلی

نظرات

  • ابراهیم حمزه ساربانقلی در ۱۳۹۸/۱۰/۲۴ ۱۳:۳۴
    پشنهاد میکنم این مطلب  و مطلب اصلی مطالعه کنید. پایه تمام این کتابخانه‌ها هستند البته کتابخانه‌ی معرفی شده توسط شما امکانات بهتری دارد. این موارد بیشتر برای آشنایی کامل‌تر معرفی کردم.
    خودم هم موارد مطلب بالا استفاده کردم و نتیجه‌ی بسیار مناسبی با توجه به سرعت پاسخ‌گویی گرفتم. ممنون