تكرار السؤال: …
الإجابة المختصرة
يحدد الحد الأقصى لحجم البيانات المخزنة في الـ internal buffer قبل تفعيل الـ backpressure وإيقاف القراءة مؤقتاً.
الشرح
القيمة الافتراضية لـ highWaterMark هي 64KB للـ streams العادية. ضبط هذه القيمة بدقة يتيح الموازنة بين تقليل استهلاك الذاكرة لكل اتصال وسرعة تدفق البيانات وتكرار استدعاءات النظام (syscalls).
مثال بالكود
fs.createReadStream("huge.csv", { highWaterMark: 128 * 1024 });أخطاء شائعة
- رفع highWaterMark لأحجام مفرطة مع خوادم تستقبل آلاف الاتصالات المتزامنة.
أسئلة متابعة
- ما هي ظاهرة الـ Backpressure في Node.js Streams وكيف تتم معالجتها هندسياً؟
- ما هو وضع الـ Object Mode في Node.js Streams ومتى يلزم تفعيله؟