Web appOpen in Telegram

Postنودجی‌اس برای اینکه ایونت لوپ (Event Loop) اصلیش موقع کارهای سنگین قفل نشه، یه سری از کارها رو میسپاره به یه بخش پس‌زمین…

25 September 2026
ک
کدهالیک | codehalic
نودجی‌اس برای اینکه ایونت لوپ (Event Loop) اصلیش موقع کارهای سنگین قفل نشه، یه سری از کارها رو میسپاره به یه بخش پس‌زمینه به اسم ترد پول که توسط کتابخونه libuv مدیریت میشه. تعداد این تردها به‌صورت پیش‌فرض ۴ تاست و کارهایی مثل رمزنگاری (crypto)، فشرده‌سازی (zlib) یا یک‌سری عملیات دیسک رو انجام میدن. شما میتونید با تغییر متغیر محیطی UV_THREADPOOL_SIZE تعدادشون رو بیشتر یا کمتر کنید. توی نودجی‌اس سایز پیش‌فرض ترد پول روی ۴ تنظیم شده و می‌تونی اون رو دستی بین ۱ تا ۱۰۲۴ تغییر بدی. تابع os.availableParallelism() این کار رو اتوماتیک انجام نمیده و فقط تعداد هسته‌های در دسترس پردازنده رو میده. نویسنده توی این مقاله میگه افزایش خودکار تعداد تردهای ترد پول بر اساس تعداد هسته‌های CPU (مثلاً با تابع `availableParallelism`) اصلاً ایده درستی نیست. دلیلش اینه که این تابع فقط تعداد هسته‌های موجود رو نشون میده، نه میزان آزاد بودنشون رو. اگه برنامه‌های مختلف فکر کنن همه هسته‌ها خالیه و کلی ترد جدید بسازن، سرور دچار رقابت شدید بین پروسس‌ها میشه. این کار باعث افزایش جابه‌جایی‌های پردازنده (Context Switching) و پر شدن کش میشه که در نهایت حتی خود ایونت لوپ اصلی نودجی‌اس رو هم کُند میکنه. از طرف دیگه، زیاد کردن تردها شاید برای کارهای I/O که منتظر دیسک می‌مونن خوب باشه، اما برای کارهای محاسباتی سنگین مثل bcrypt و gzip اوضاع رو بدتر میکنه و زمان پاسخگویی به درخواست‌ها رو بالا می‌بره. نویسنده اشاره میکنه که پایین آوردن اولویت تردها (مثل nice 10) هم مشکل رو کامل حل نمیکنه. در نهایت حرفش اینه که سایز ترد پول نباید اتوماتیک تغییر کنه، بلکه باید بر اساس تست کارایی واقعی روی سرور شلوغ و نوع برنامه به شکل دستی تنظیم بشه. https://blog.platformatic.dev/more-threads-on-an-already-busy-machine @codehalics | کدهالیک
7 · 1K ·

Nearby in the feed

ککدهالیک | codehalicنسل جدیدی از المان‌های گرافیکی واکنش‌گرا برای فریم‌ورک React معرفی شده که با بهره‌گیری از توان محاسباتی WebGL، افکت‌های بصری شبیه‌سازی‌شده‌ی پلاسما و مایعات را ککدهالیک | codehalicنرم‌افزار خود لنوو (Vantage) برای لپ‌تاپ‌های Legion روی لینوکس اجرا نمی‌شه، ابزارهایی هم که جاشو گرفتن کار می‌کنن ولی ظاهرشون خیلی قدیمیه. واسه همین خودم Cohort
this message
ککدهالیک | codehalicچرا بلوبانک برای انتقال وجه رمز دوم نمی‌خواد؟ مگه ممکن نیست کسی بتونه توکن احراز هویتش رو بدزده ؟! جوابش توی این ویدیوئه. توی بوت‌کمپ پاییزه کدهالیک، یه نئوبانکککدهالیک | codehalicاین مقاله خیلی قشنگ توضیح می‌ده که تو دنیای مهندسی نرم‌افزار ما دو جور توصیه داریم: یه سری قواعد صفر و صدی و سرراست مثل «توابع رو کوچیک بنویس» یا DRY که یادگیری
ککدهالیک | codehalicکدهالیک | codehalic@codehalics · channel
4 154subscribers914average post reach
Venue feed Open in Telegram

An open public feed from the search index ChatCrawler — “Google for public Telegram”; refreshed as the venue is crawled. Times are UTC.

Public content only, official Telegram API. About · FAQ · What we do not do · Remove a page · Catalog · Search · How we count