این مقاله به بررسی رویکردهای مختلف لاگینگ (ثبت رویداد) در دات نت 9 میپردازد و بر عملکرد و مزایای لاگینگ (ثبت رویداد) ساختاریافته تمرکز میکند.
رویکردهای لاگینگ (ثبت رویداد):
- درون یابی رشتهای (String Interpolation):
- ساده و شهودی است.
- به دلیل قالب بندی رشتهای و تخصیص حافظه، سربار عملکردی دارد.
- لاگینگ (ثبت رویداد) ساختاریافته (Structured Logging):
- از الگوها برای تجزیه و تحلیل بهتر لاگ (ثبت رویداد) استفاده میکند.
- در مقایسه با درون یابی، مصرف حافظه را کاهش میدهد.
- همچنان مقداری سربار تخصیص حافظه را متحملمی شود.
- لاگینگ (ثبت رویداد) با عملکرد بالا (High-Performance Logging) (با استفاده از
LoggerMessage):- از تولید منبع برای عملکرد بهینه استفاده میکند.
- تخصیص حافظه در زمان اجرا را حذف میکند.
- مزایای لاگینگ (ثبت رویداد) ساختاریافته را حفظ میکند.
تحلیل عملکرد:
- آزمایش ها نشان میدهد که لاگینگ (ثبت رویداد) با عملکرد بالا، دستاوردهای عملکردی قابل توجهی دارد.
- لاگینگ (ثبت رویداد) با عملکرد بالا از نمایندگان از پیش کامپایل شده استفاده میکند و از عملیات باکسینگ (boxing) جلوگیری می کند.
- لاگینگ (ثبت رویداد) درون یابی شده بیشترین تخصیص حافظه را ایجاد میکند.
- لاگینگ (ثبت رویداد) ساختاریافته در وسط تخصیص حافظه قرار دارد.
- لاگینگ (ثبت رویداد) با عملکرد بالا تخصیص حافظه صفر ایجاد میکند.
توصیه ها:
- از درون یابی رشتهای برای نمونه سازی سریع استفاده کنید.
- از لاگینگ (ثبت رویداد) ساختاریافته برای تجزیه و تحلیل بهتر لاگ (ثبت رویداد) استفاده کنید.
- از لاگینگ (ثبت رویداد) با عملکرد بالا برای سیستمهای تولیدی با نیازهای عملکردی حیاتی استفاده کنید.
- لاگینگ (ثبت رویداد) ساختاریافته باید حداقل استاندارد برای برنامه های کاربردی تولیدی باشد.
مشاهده مطلب اصلی