معرفی کتابخانه FastMember برای کار با Reflection
200, OK
https://github.com/mgravell/fast-member icon

خیلی از مواقع ما نیاز داریم از 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  

معرفی کتابخانه FastMember برای کار با Reflection
  • #
    ‫۴ سال و ۸ ماه قبل، سه‌شنبه ۲۴ دی ۱۳۹۸، ساعت ۱۷:۰۴
    پشنهاد میکنم این مطلب  و مطلب اصلی مطالعه کنید. پایه تمام این کتابخانه‌ها هستند البته کتابخانه‌ی معرفی شده توسط شما امکانات بهتری دارد. این موارد بیشتر برای آشنایی کامل‌تر معرفی کردم.
    خودم هم موارد مطلب بالا استفاده کردم و نتیجه‌ی بسیار مناسبی با توجه به سرعت پاسخ‌گویی گرفتم. ممنون