CRM/docs/PERFORMANCE_AUDIT_FA.md

37 خطوط
3.1 KiB
Markdown
خام پیوند همیشگی سرزنش تاریخچه

مخزن ambiguous runes header

راهنمای مخزن ambiguous runes توضیحات

# ممیزی کارایی CRM
تاریخ: ۱۴۰۵/۰۵/۰۱
## خط مبنا
- بارگذاری مسیرها از قبل به‌صورت code-split بود، اما loading محتوایی با spinner یا متن ساده نمایش داده می‌شد.
- داده‌های مرجع پرتکرار مانند کارشناسان، نتایج تماس و پایپ‌لاین در چند صفحه و حتی هم‌زمان دوباره درخواست می‌شدند.
- قیف، KPI، داشبورد و گزارش‌ها پس از mutation محلی از یک کانال مشترک invalidation استفاده نمی‌کردند.
- PDF.js به chunk مستقل محدود بود؛ این رفتار باید حفظ می‌شد تا مسیرهای عادی هزینه PDF را نپردازند.
- indexهای ترکیبی اصلی برای وظایف، پیگیری‌ها، تماس‌ها، اعلان‌ها و معاملات در migrationهای موجود حاضر بودند؛ index تکراری اضافه نشد.
## اصلاحات انجام‌شده
- cache حافظه‌ای ۶۰ ثانیه‌ای همراه با deduplication درخواست‌های هم‌زمان برای داده‌های مرجع اضافه شد.
- هر mutation موفق، cache را invalid می‌کند و رویداد مشترک `crm:data-changed` را در همان tab و tabهای دیگر منتشر می‌کند.
- قیف لید، برد فرصت، داشبوردها و گزارش‌ها با رویداد تغییر داده فوراً refresh می‌شوند؛ polling ده تا پانزده ثانیه‌ای نیز برای تغییرات کاربران دیگر باقی مانده است.
- KPI فرصت‌ها از همان `DealPipelineService` خوانده می‌شود و بعد از انتقال کارت به‌صورت optimistic و سپس با داده سرور اصلاح می‌شود.
- همه loadingهای محتوایی اصلی با Skeleton هم‌اندازه جایگزین شدند؛ spinner فقط برای اکشن‌های کوتاه باقی می‌ماند.
- فیلترها و داده‌های وابسته به‌صورت موازی دریافت می‌شوند و route-level lazy loading حفظ شد.
## کنترل بسته تولید
آخرین Build موفق:
- ورودی اصلی: حدود ۲۴۰ کیلوبایت خام و ۷۷ کیلوبایت gzip
- PDF.js: chunk مستقل حدود ۴۲۵ کیلوبایت خام و ۱۲۷ کیلوبایت gzip
- PDF worker: فایل مستقل و فقط در جریان قالب فاکتور
- ۱۸۴ ماژول با Build تولید بدون خطای TypeScript
## نتیجه قابل سنجش
- چند مصرف‌کننده هم‌زمان یک داده مرجع: یک درخواست شبکه به‌جای چند درخواست
- مراجعه به صفحات دارای داده مرجع در بازه cache: صفر درخواست تکراری
- mutation در همان مرورگر: refresh وابستگی‌ها بلافاصله، بدون انتظار برای polling بعدی
- تغییر از کاربر/مرورگر دیگر: حداکثر ۱۰ ثانیه در گزارش و ۱۵ ثانیه در داشبورد