عنوان:

‫لاگینگ (ثبت رویداد) با عملکرد بالا در دات نت 9


نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۲/۱۴ ۰۸:۲۹
آدرس: www.dntips.ir
این مقاله به بررسی رویکردهای مختلف لاگینگ (ثبت رویداد) در دات نت 9 می‌پردازد و بر عملکرد و مزایای لاگینگ (ثبت رویداد) ساختاریافته تمرکز می‌کند.

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

تحلیل عملکرد:
  • آزمایش ها نشان می‌دهد که لاگینگ (ثبت رویداد) با عملکرد بالا، دستاوردهای عملکردی قابل توجهی دارد.
  • لاگینگ (ثبت رویداد) با عملکرد بالا از نمایندگان از پیش کامپایل شده استفاده می‌کند و از عملیات باکسینگ (boxing) جلوگیری می کند.
  • لاگینگ (ثبت رویداد) درون یابی شده بیشترین تخصیص حافظه را ایجاد می‌کند.
  • لاگینگ (ثبت رویداد) ساختاریافته در وسط تخصیص حافظه قرار دارد.
  • لاگینگ (ثبت رویداد) با عملکرد بالا تخصیص حافظه صفر ایجاد می‌کند.

توصیه ها:
  • از درون یابی رشته‌ای برای نمونه سازی سریع استفاده کنید.
  • از لاگینگ (ثبت رویداد) ساختاریافته برای تجزیه و تحلیل بهتر لاگ (ثبت رویداد) استفاده کنید.
  • از لاگینگ (ثبت رویداد) با عملکرد بالا برای سیستم‌های تولیدی با نیازهای عملکردی حیاتی استفاده کنید.
  • لاگینگ (ثبت رویداد) ساختاریافته باید حداقل استاندارد برای برنامه های کاربردی تولیدی باشد.



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