بنچمارک نود ۲۴ در برابر ۲۵ و ۲۶: کدوم سریعتره؟
خلاصهٔ کاملتر
این مقاله بعد از بنچمارک قبلیِ نود، به درخواست خوانندهها یه بنچمارک از جنس برنامهٔ واقعی رو اضافه کرده. به گفتهٔ نویسنده، تستهای میکرو (action benchmark) مفیدن ولی نشون نمیدن وقتی نود واقعاً داره درخواست سرو میکنه، JSON پارس میکنه، state رو آپدیت میکنه و مدتی طولانی کار میکنه چی پیش میاد. برای همین این بار سه نسخهٔ 24.15.0، 25.9.0 و 26.2.0 رو محک زدن.
هستهٔ کار یه اپ شبیهسازیشدهست: یه سرویس HTTP بدون وابستگی که خودش هم درخواستساز داخلی داره. ترکیب درخواستها ثابت بوده؛ ۱۰٪ health check، ۳۰٪ خوندن از یه map در حافظه، ۲۵٪ نوشتن همراه با پارس JSON، ۲۵٪ کار محاسباتی با ۲۰۰ بار SHA-256 روی payload چهار کیلوبایتی و ۱۰٪ گزارش وضعیت. عمداً نرخ رو روی ۵۰ درخواست در ثانیه ثابت نگه داشتن تا به جای رقابت حداکثری توان عملیاتی، رفتار tail latency و حافظه راحتتر مقایسه بشه.
برای تأخیر فقط از معیار p95 استفاده کردن تا تمرکز روی یه سیگنال tail latency بمونه. در بحث حافظه، نویسنده میگه واضحترین سیگنالِ اجرای یکساعته، پیک RSS هست و توی این بار کاری نود 26.2.0 کمترین حافظهٔ پیک رو مصرف کرده. توی بخش پایدار اجرا هم هر سه نسخه با گامهای مشابهی حافظهشون بالا میره و مصرف CPU هم نزدیک به هم میمونه.
بخش دوم همون action benchmarkهای هدفمنده که ساختار تست اصلی رو نگه داشته: یه عملیات کوچیک که اونقدر تکرار میشه تا توان عملیاتی runtime مقایسه بشه. این تستها شامل توان HTTP GET، سرعت JSON.parse و JSON.stringify، هش SHA-256، کپی بافر ۶۴ کیلوبایتی، الگوی map و reduce روی آرایه، الحاق رشته و یه حلقهٔ عددی فشرده میشه. همهٔ تستها روی یه Mac mini با تراشهٔ Apple M4 و ۱۶ گیگ رم اجرا شدن.
جمعبندی نویسنده اینه که نسخههای اخیر نود به هم نزدیکن ولی یکسان نیستن، و اپ شبیهسازیشده تصویر بهتری از یه میکروبنچمارک تنها میده چون درخواست، JSON، فشار حافظه و محاسبه رو یهجا قاطی میکنه. توصیهش اینه که نسخه رو از روی یه نمودار انتخاب نکنی؛ اگه الان روی نود ۲۴ یا ۲۵ هستی، قدم عملی بعدی اینه که ۲۶ رو با سرویس خودت تست کنی و همون شکل رو دنبال کنی: تأخیر، حافظه، CPU و چند مسیر داغی که اپت واقعاً بهشون اهمیت میده.
نکات کلیدی:
- مقایسهٔ نسخههای 24.15.0، 25.9.0 و 26.2.0 با یه بنچمارک نزدیک به برنامهٔ واقعی
- اجرای یکساعته با نرخ ثابت ۵۰ درخواست در ثانیه برای سنجش tail latency و حافظه
- نود 26.2.0 کمترین پیک RSS رو در این بار کاری داشت
- تفاوت نسخهها کم ولی واقعیه؛ توصیه به تست روی سرویس خودت




