الفرق بين المراجعتين لصفحة: «Node.js/v8»

من موسوعة حسوب
أنشأ الصفحة ب'الوحدة V8 تعرض الوحدة v8 واجهات برمجة التطبيقات (API) الخاصة بإصدار V8 المضمنة في برمجية Node.js. ويم...'
 
لا ملخص تعديل
سطر 1: سطر 1:
الوحدة V8
الوحدة V8


تعرض الوحدة v8 واجهات برمجة التطبيقات (API) الخاصة بإصدار V8 المضمنة في برمجية Node.js. ويمكن الوصول إليها باستخدام:
تعرض الوحدة v8 واجهات برمجة التطبيقات (API) الخاصة بإصدار V8 المضمنة في برمجية Node.js. ويمكن الوصول إليها باستخدام:<syntaxhighlight lang="javascript">
const v8 = require('v8');
</syntaxhighlight>وقد يتعرض كلٌ من واجهات برمجة التطبيقات والتنفيذ للتغيير في أي وقت.


وقد يتعرض كلٌ من واجهات برمجة التطبيقات والتنفيذ للتغيير في أي وقت.
== <code>v8.cachedDataVersionTag()‎</code> ==
 
== v8.cachedDataVersionTag()‎ ==
أُضيف مع الإصدار: v8.0.0.
أُضيف مع الإصدار: v8.0.0.


    • القيمة المُعادة: من النوع <integer>.
    • القيمة المُعادة: من النوع <code>[[JavaScript/Number|<integer>]]</code>.


يُعيد عدد صحيح يمثل "وسم الإصدار" مشتق من الإصدار V8، ورايات سطر الأوامر وميزات المعالج CPU المكتشفة. وهو يفيد في تحديد ما إذا كان المخزن المؤقت لـ cacheddata الخاص بـ vm.Script متوافق مع مثيل V8 هذا.
يُعيد عدد صحيح يمثل "وسم الإصدار" مشتق من الإصدار V8، ورايات سطر الأوامر وميزات المعالج CPU المكتشفة. وهو يفيد في تحديد ما إذا كان المخزن المؤقت لـ <code>cacheddata</code> الخاص بـ <code>[[Node.js/vm|vm.Script]]</code> متوافق مع مثيل V8 هذا.


== v8.getHeapSpaceStatistics()‎ [المصدر] ==
== <code>v8.getHeapSpaceStatistics()‎</code> [https://github.com/nodejs/node/blob/cdb359840c9537e460b1bf0536fc36ec5fe2db2d/lib/v8.js#L92 <nowiki>[المصدر]</nowiki>] ==
    • القيمة المُعادة: من النوع <Object[]‎>.
سجل التغييرات
{| class="wikitable"
!الإصدار
!التغييرات
|-
|v7.5.0
|دعم القيم التي تتجاوز نطاق الأعداد الصحيح بدون إشارة 32 بت.
|-
|v6.0.0
|أُضيف مع الإصدار: v6.0.0.
|}
    • القيمة المُعادة: من النوع <code>[[JavaScript/Object|<Object[]‎>]]</code>.


يُعيد إحصائيات حول مساحات تكدس V8، أي المقاطع التي تشكل تكدس V8. لا يمكن ضمان ترتيب مساحات تكدس، ولا توفرها إذ تتغير الإحصاءات المُعادة من دالة v8.getHeapSpaceStatistics من أحد إصدارات V8 إلى الإصدار التالي.
يُعيد إحصائيات حول مساحات تكدس V8، أي المقاطع التي تشكل تكدس V8. لا يمكن ضمان ترتيب مساحات تكدس، ولا توفرها إذ تتغير الإحصاءات المُعادة من دالة <code>v8.getHeapSpaceStatistics</code> من أحد إصدارات V8 إلى الإصدار التالي.


القيمة المُعادة هي مصفوفة من الكائنات التي تحتوي على الخصائص التالية:
القيمة المُعادة هي مصفوفة من الكائنات التي تحتوي على الخصائص التالية:


    • space_name من النوع <string>.
    • <code>space_name</code> من النوع <code>[[JavaScript/String|<string>]]</code>.


    • space_size من النوع <number>.
    • <code>space_size</code> من النوع <code>[[JavaScript/Number|<number>]]</code>.


    • space_used_size من النوع <number>.
    • <code>space_used_size</code> من النوع <code>[[JavaScript/Number|<number>]]</code>.


    • space_available_size  من النوع <number>.
    • <code>space_available_size</code>  من النوع <code>[[JavaScript/Number|<number>]]</code>.


    • physical_space_size من النوع <number>.
    • <code>physical_space_size</code> من النوع <code>[[JavaScript/Number|<number>]]</code>.


== v8.getHeapStatistics()‎ [المصدر] ==
== v8.getHeapStatistics()‎ [المصدر] ==
سطر 34: سطر 45:
يُعيد كائن بالخصائص التالية:
يُعيد كائن بالخصائص التالية:


    • total_heap_size من النوع <number>
    • total_heap_size من النوع <code>[[JavaScript/Number|<number>]]</code>.


    • total_heap_size_executable من النوع <number>
    • total_heap_size_executable من النوع <code>[[JavaScript/Number|<number>]]</code>.


    • total_physical_size من النوع <number>
    • total_physical_size من النوع <code>[[JavaScript/Number|<number>]]</code>.


    • total_available_size من النوع <number>.
    • total_available_size من النوع <code>[[JavaScript/Number|<number>]]</code>.


    • used_heap_size من النوع <number>.
    • used_heap_size من النوع <code>[[JavaScript/Number|<number>]]</code>.


    • heap_size_limit من النوع <number>.
    • heap_size_limit من النوع <code>[[JavaScript/Number|<number>]]</code>.


    • malloced_memory من النوع <number>.
    • malloced_memory من النوع <code>[[JavaScript/Number|<number>]]</code>.


    • peak_malloced_memory من النوع <number>.
    • peak_malloced_memory من النوع <code>[[JavaScript/Number|<number>]]</code>.


    • does_zap_garbage من النوع <number>.
    • does_zap_garbage من النوع <code>[[JavaScript/Number|<number>]]</code>.


does_zap_garbage من النوع Boolean بقيمة 0/1، والذي يدل علي ما إذا كان الخيار ‎--zap_code_space مُفعَِّل أم لا. وهذا يجعل V8 يعيد الكتابة فوق المهملات المكدسة بنمط بت. تتضخم بصمة RSS (مجموعة الذاكرة المُقِيمة) لأنها تمس باستمرار جميع صفحات المكدس والتي تجعلها اقل عرضة للمبادلة من قِبَل نظام التشغيل.
does_zap_garbage من النوع Boolean بقيمة 0/1، والذي يدل علي ما إذا كان الخيار ‎--zap_code_space مُفعَِّل أم لا. وهذا يجعل V8 يعيد الكتابة فوق المهملات المكدسة بنمط بت. تتضخم بصمة RSS (مجموعة الذاكرة المُقِيمة) لأنها تمس باستمرار جميع صفحات المكدس والتي تجعلها اقل عرضة للمبادلة من قِبَل نظام التشغيل.


== v8.setFlagsFromString(flags) [المصدر] ==
== <code>v8.setFlagsFromString(flags)‎</code> [المصدر] ==
أضيف مع الإصدار: v1.0.0.
أضيف مع الإصدار: v1.0.0.


    • flags من النوع<string>.
    • flags من النوع <code>[[JavaScript/String|<string>]]</code>.


يمكن استخدام التابع v8.setFlagsFromString()‎ لتعيين رايات سطر الأوامر V8 برمجيًا. وينبغي استخدام هذا التابع بحرص. فقد يؤدي تغيير الإعدادات بعد بدء VM إلى سلوك غير متوقع، بما في ذلك الأعطال وفقدان البيانات؛ أو قد لا تفعل شيئًا ببساطة.
يمكن استخدام التابع <code>v8.setFlagsFromString()‎</code> لتعيين رايات سطر الأوامر V8 برمجيًا. وينبغي استخدام هذا التابع بحرص. فقد يؤدي تغيير الإعدادات بعد بدء VM إلى سلوك غير متوقع، بما في ذلك الأعطال وفقدان البيانات؛ أو قد لا تفعل شيئًا ببساطة.


قد تُحدد خيارات v8 المتوفرة لإصدار Node.js عن طريق تشغيل node --v8-options. وتوجد هنا قائمة غير رسمية من الخيارات وتأثيرها مُصانة من مجتمع البرمجة.
قد تُحدد خيارات v8 المتوفرة لإصدار Node.js عن طريق تشغيل node --v8-options. وتوجد هنا قائمة غير رسمية من الخيارات وتأثيرها مُصانة من مجتمع البرمجة.
سطر 74: سطر 85:
لا تزال هذه الـ API قيد التطوير، والتغييرات قد تحدث حتى إزالة هذا التحذير (بما في ذلك التغييرات غير المتوافقة مع API أو تنسيق الأسلاك).
لا تزال هذه الـ API قيد التطوير، والتغييرات قد تحدث حتى إزالة هذا التحذير (بما في ذلك التغييرات غير المتوافقة مع API أو تنسيق الأسلاك).


=== v8.serialize(value) [المصدر] ===
=== <code>v8.serialize(value)‎</code> [المصدر] ===
أُضيف مع الإصدار: v8.0.0.
أُضيف مع الإصدار: v8.0.0.


سطر 81: سطر 92:
    • القيمة المُعادة: من النوع <Buffer>.
    • القيمة المُعادة: من النوع <Buffer>.


يستخدم DefaultSerializer في تسلسل القيمة value إلى داخل المخزن المؤقت.
يستخدم <code>DefaultSerializer</code> في تسلسل القيمة value إلى داخل المخزن المؤقت.


=== v8.deserialize(buffer) [المصدر] ===
=== <code>v8.deserialize(buffer)‎</code> [المصدر] ===
أُضيف مع الإصدار: v8.0.0.
أُضيف مع الإصدار: v8.0.0.


    • buffer من النوع <Buffer> | <Uint8Array>وهو مخزن مؤقت يُعاد من قِبَل serialize()‎.
    • buffer من النوع <Buffer> | <Uint8Array>وهو مخزن مؤقت يُعاد من قِبَل serialize()‎.


يستخدم DefaultDeserializer مع الخيارات الافتراضية لقراءة قيمة JS من المخزن المؤقت.
يستخدم <code>DefaultDeserializer</code> مع الخيارات الافتراضية لقراءة قيمة JS من المخزن المؤقت.


=== الصنف: v8.Serializer ===
=== الصنف: <code>v8.Serializer</code> ===
أُضيف مع الإصدار: v8.0.0.
أُضيف مع الإصدار: v8.0.0.


==== Serializer()‎ الجديد ====
==== <code>Serializer()‎</code> الجديد ====
إنشاء كائن serializer جديد.
إنشاء كائن serializer جديد.


==== serializer.writeHeader()‎ ====
==== <code>serializer.writeHeader()‎</code> ====
يكتب ترويسة، والتي تتضمن إصدار تنسيق التسلسل.
يكتب ترويسة، والتي تتضمن إصدار تنسيق التسلسل.


==== serializer.writeValue(value) ====
==== <code>serializer.writeValue(value)‎</code> ====
    • value من النوع <any>.
    • value من النوع <any>.


سطر 106: سطر 117:
ويُطلق خطأ إذا لم يتمكن من إجراء تسلسل القيمة value.
ويُطلق خطأ إذا لم يتمكن من إجراء تسلسل القيمة value.


==== serializer.releaseBuffer()‎ ====
==== <code>serializer.releaseBuffer()‎</code> ====
    • القيمة المُعادة: من النوع <Buffer>.
    • القيمة المُعادة: من النوع <Buffer>.


يُعيد المخزن المؤقت الداخلي المخزون. لا يجب استخدام هذا المُسلسِل إذا حدث تفريغ للمخزن المؤقت. استدعاء هذا التابع يؤدي إلى سلوك غير مُعرَّف إذا فشلت عملية الكتابة السابقة.
يُعيد المخزن المؤقت الداخلي المخزون. لا يجب استخدام هذا المُسلسِل إذا حدث تفريغ للمخزن المؤقت. استدعاء هذا التابع يؤدي إلى سلوك غير مُعرَّف إذا فشلت عملية الكتابة السابقة.


==== serializer.transferArrayBuffer(id, arrayBuffer) ====
==== serializer.transferArrayBuffer(id, arrayBuffer)====
    • id من النوع <integer> وهو عدد صحيح 32 بت بدون إشارة.
    • id من النوع <code>[[JavaScript/Number|<integer>]]</code> وهو عدد صحيح 32 بت بدون إشارة.


    • arrayBuffer من النوع <ArrayBuffer> وهو مثيل لـ ArrayBuffer.
    • arrayBuffer من النوع <ArrayBuffer> وهو مثيل لـ ArrayBuffer.


==== يشير إلى ArrayBuffer كما لو كانت محتوياته قد نُقلت خارج النطاق. ويمرر ArrayBuffer المقابل في سياق إلغاء التسلسل إلى التابع deserializer.transferArrayBuffer()‎. ====
يشير إلى ArrayBuffer كما لو كانت محتوياته قد نُقلت خارج النطاق. ويمرر ArrayBuffer المقابل في سياق إلغاء التسلسل إلى التابع deserializer.transferArrayBuffer()‎.


==== serializer.writeUint32(value) ====
==== serializer.writeUint32(value)====
    • value من النوع <integer>.
    • value من النوع<code>[[JavaScript/Number|<integer>]]</code>.


كتابة عدد صحيح 32 بت خام بدون إشارة. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.
كتابة عدد صحيح 32 بت خام بدون إشارة. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.


==== serializer.writeUint64(hi, lo) ====
==== serializer.writeUint64(hi, lo)====
    • hi  من النوع <integer>.
    • hi  من النوع <code>[[JavaScript/Number|<integer>]]</code>.


    • lo من النوع <integer>.
    • lo من النوع <code>[[JavaScript/Number|<integer>]]</code>.


كتابة عدد صحيح 64 بت خام بدون إشارة، مقسمة إلى جزأين؛ علوي وسفلي كل منهما 32 بت. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.
كتابة عدد صحيح 64 بت خام بدون إشارة، مقسمة إلى جزأين؛ علوي وسفلي كل منهما 32 بت. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.


==== serializer.writeDouble(value) ====
==== <code>serializer.writeDouble(value)‎</code> ====
    • value من النوع <number>.
    • value من النوع <code>[[JavaScript/Number|<number>]]</code>.


كتابة قيمة من النوع number. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.
كتابة قيمة من النوع number. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.


==== serializer.writeRawBytes(buffer) ====
==== <code>serializer.writeRawBytes(buffer)‎</code> ====
    • buffer من النوع <Buffer> | <Uint8Array>.
    • buffer من النوع <Buffer> | <Uint8Array>.


كتابه وحدات البايت الخام في المخزن المؤقت الداخلي للمُسلسِل. سيتطلب إلغاء التسلسل طريقة لحساب طول المخزن المؤقت. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.
كتابه وحدات البايت الخام في المخزن المؤقت الداخلي للمُسلسِل. سيتطلب إلغاء التسلسل طريقة لحساب طول المخزن المؤقت. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.


==== serializer._writeHostObject(object) ====
==== serializer._writeHostObject(object)====
    • object من النوع <Object>.
    • object من النوع <Object>.


سطر 147: سطر 158:
هذا التابع غير موجود ضمن الصنف Serializer نفسه ولكن يمكن توفيره بواسطة الأصناف الفرعية.
هذا التابع غير موجود ضمن الصنف Serializer نفسه ولكن يمكن توفيره بواسطة الأصناف الفرعية.


==== serializer._getDataCloneError(message) ====
==== serializer._getDataCloneError(message)====
    • message من النوع <string>.
    • message من النوع <code>[[JavaScript/String|<string>]]</code>.


يستدعى هذا التابع لإنشاء كائنات الأخطاء التي ستنطلق عندما لا يمكن استنساخ كائن.
يستدعى هذا التابع لإنشاء كائنات الأخطاء التي ستنطلق عندما لا يمكن استنساخ كائن.
سطر 154: سطر 165:
يعيد هذا التابع قيمة افتراضية إلى مُنشئ الخطأ Error ويمكن تجاوزه في الأصناف الفرعية.
يعيد هذا التابع قيمة افتراضية إلى مُنشئ الخطأ Error ويمكن تجاوزه في الأصناف الفرعية.


==== serializer._getSharedArrayBufferId(sharedArrayBuffer) ====
==== serializer._getSharedArrayBufferId(sharedArrayBuffer)====
    • sharedArrayBuffer من النوع <SharedArrayBuffer>
    • sharedArrayBuffer من النوع <SharedArrayBuffer>


سطر 163: سطر 174:
هذا التابع غير موجود ضمن الصنف Serializer نفسه ولكن يمكن توفيره بواسطة الأصناف الفرعية.
هذا التابع غير موجود ضمن الصنف Serializer نفسه ولكن يمكن توفيره بواسطة الأصناف الفرعية.


==== serializer._setTreatArrayBufferViewsAsHostObjects(flag) ====
==== serializer._setTreatArrayBufferViewsAsHostObjects(flag)====
    • flag من النوع <boolean>. القيمة الافتراضية: false.
    • flag من النوع <boolean>. القيمة الافتراضية: false.


سطر 171: سطر 182:
أُضيف مع الإصدار: v8.0.0.
أُضيف مع الإصدار: v8.0.0.


==== Deserializer(buffer) الجديد ====
==== Deserializer(buffer)الجديد ====
    • buffer من النوع <Buffer> | <Uint8Array>وهو مخزن مؤقت يُعاد من قِبَل serializer.releaseBuffer()‎.
    • buffer من النوع <Buffer> | <Uint8Array>وهو مخزن مؤقت يُعاد من قِبَل serializer.releaseBuffer()‎.


سطر 182: سطر 193:
إلغاء تسلسل قيمة JavaScript من المخزن المؤقت وإعادته.
إلغاء تسلسل قيمة JavaScript من المخزن المؤقت وإعادته.


==== deserializer.transferArrayBuffer(id, arrayBuffer) ====
==== deserializer.transferArrayBuffer(id, arrayBuffer)====
    • id من النوع <integer> وهو عدد صحيح 32 بت بدون إشارة.
    • id من النوع <code>[[JavaScript/Number|<integer>]]</code> وهو عدد صحيح 32 بت بدون إشارة.


    • arrayBuffer من النوع <ArrayBuffer> | <SharedArrayBuffer> وهي مثيل لـ ArrayBuffer.
    • arrayBuffer من النوع <ArrayBuffer> | <SharedArrayBuffer> وهي مثيل لـ ArrayBuffer.
سطر 190: سطر 201:


==== deserializer.getWireFormatVersion()‎ ====
==== deserializer.getWireFormatVersion()‎ ====
    • القيمة المُعادة: من النوع <integer>.
    • القيمة المُعادة: من النوع <code>[[JavaScript/Number|<integer>]]</code>.


يقرأ إصدار تنسيق الأسلاك الأساسية. غالبًا ما يفيد في قراءة الشيفرات القديمة من الإصدارات القديمة لتنسيق الأسلاك. قد لا يستدعى قبل ‎.readHeader()‎.
يقرأ إصدار تنسيق الأسلاك الأساسية. غالبًا ما يفيد في قراءة الشيفرات القديمة من الإصدارات القديمة لتنسيق الأسلاك. قد لا يستدعى قبل ‎.readHeader()‎.


==== deserializer.readUint32()‎ ====
==== deserializer.readUint32()‎ ====
    • القيمة المُعادة: من النوع <integer>.
    • القيمة المُعادة: من النوع <code>[[JavaScript/Number|<integer>]]</code>.


قراءة عدد صحيح 32 بت خام بدون إشارة. للاستخدام داخل أحد تخصيصات التابع deserializer._readHostObject()‎.
قراءة عدد صحيح 32 بت خام بدون إشارة. للاستخدام داخل أحد تخصيصات التابع deserializer._readHostObject()‎.
سطر 204: سطر 215:
قراءة عدد صحيح 64 بت خام بدون إشارة وإعادته كمصفوفة [hi, lo] تحتوي على عنصرين 32 بت بدون إشارة. للاستخدام داخل أحد تخصيصات التابع deserializer._readHostObject()‎.
قراءة عدد صحيح 64 بت خام بدون إشارة وإعادته كمصفوفة [hi, lo] تحتوي على عنصرين 32 بت بدون إشارة. للاستخدام داخل أحد تخصيصات التابع deserializer._readHostObject()‎.


==== deserializer.readDouble()‎ ====
==== <code>deserializer.readDouble()‎</code> ====
    • القيمة المُعادة: من النوع <number>.
    • القيمة المُعادة: من النوع <code>[[JavaScript/Number|<number>]]</code>.


قراءة قيمة من النوع number. للاستخدام داخل أحد تخصيصات التابع deserializer._readHostObject()‎.
قراءة قيمة من النوع number. للاستخدام داخل أحد تخصيصات التابع deserializer._readHostObject()‎.


==== deserializer.readRawBytes(length) [المصدر] ====
==== <code>deserializer.readRawBytes(length)‎</code> [المصدر] ====
    • length من النوع <integer>.
    • length من النوع <code>[[JavaScript/Number|<integer>]]</code>.


    • القيمة المُعادة: من النوع <Buffer>.
    • القيمة المُعادة: من النوع <Buffer>.
سطر 220: سطر 231:


هذا التابع غير موجود ضمن الصنف Deserializer نفسه ولكن يمكن توفيره بواسطة الأصناف الفرعية.
هذا التابع غير موجود ضمن الصنف Deserializer نفسه ولكن يمكن توفيره بواسطة الأصناف الفرعية.
* الصنف: v8.DefaultSerializer
 
=== الصنف: v8.DefaultSerializer ===
أُضيف مع الإصدار: v8.0.0.
أُضيف مع الإصدار: v8.0.0.



مراجعة 11:02، 23 سبتمبر 2018

الوحدة V8

تعرض الوحدة v8 واجهات برمجة التطبيقات (API) الخاصة بإصدار V8 المضمنة في برمجية Node.js. ويمكن الوصول إليها باستخدام:

const v8 = require('v8');

وقد يتعرض كلٌ من واجهات برمجة التطبيقات والتنفيذ للتغيير في أي وقت.

v8.cachedDataVersionTag()‎

أُضيف مع الإصدار: v8.0.0.

    • القيمة المُعادة: من النوع <integer>.

يُعيد عدد صحيح يمثل "وسم الإصدار" مشتق من الإصدار V8، ورايات سطر الأوامر وميزات المعالج CPU المكتشفة. وهو يفيد في تحديد ما إذا كان المخزن المؤقت لـ cacheddata الخاص بـ vm.Script متوافق مع مثيل V8 هذا.

v8.getHeapSpaceStatistics()‎ [المصدر]

سجل التغييرات

الإصدار التغييرات
v7.5.0 دعم القيم التي تتجاوز نطاق الأعداد الصحيح بدون إشارة 32 بت.
v6.0.0 أُضيف مع الإصدار: v6.0.0.

    • القيمة المُعادة: من النوع <Object[]‎>.

يُعيد إحصائيات حول مساحات تكدس V8، أي المقاطع التي تشكل تكدس V8. لا يمكن ضمان ترتيب مساحات تكدس، ولا توفرها إذ تتغير الإحصاءات المُعادة من دالة v8.getHeapSpaceStatistics من أحد إصدارات V8 إلى الإصدار التالي.

القيمة المُعادة هي مصفوفة من الكائنات التي تحتوي على الخصائص التالية:

    • space_name من النوع <string>.

    • space_size من النوع <number>.

    • space_used_size من النوع <number>.

    • space_available_size  من النوع <number>.

    • physical_space_size من النوع <number>.

v8.getHeapStatistics()‎ [المصدر]

    • القيمة المُعادة: من النوع <Object>.

يُعيد كائن بالخصائص التالية:

    • total_heap_size من النوع <number>.

    • total_heap_size_executable من النوع <number>.

    • total_physical_size من النوع <number>.

    • total_available_size من النوع <number>.

    • used_heap_size من النوع <number>.

    • heap_size_limit من النوع <number>.

    • malloced_memory من النوع <number>.

    • peak_malloced_memory من النوع <number>.

    • does_zap_garbage من النوع <number>.

does_zap_garbage من النوع Boolean بقيمة 0/1، والذي يدل علي ما إذا كان الخيار ‎--zap_code_space مُفعَِّل أم لا. وهذا يجعل V8 يعيد الكتابة فوق المهملات المكدسة بنمط بت. تتضخم بصمة RSS (مجموعة الذاكرة المُقِيمة) لأنها تمس باستمرار جميع صفحات المكدس والتي تجعلها اقل عرضة للمبادلة من قِبَل نظام التشغيل.

v8.setFlagsFromString(flags)‎ [المصدر]

أضيف مع الإصدار: v1.0.0.

    • flags من النوع <string>.

يمكن استخدام التابع v8.setFlagsFromString()‎ لتعيين رايات سطر الأوامر V8 برمجيًا. وينبغي استخدام هذا التابع بحرص. فقد يؤدي تغيير الإعدادات بعد بدء VM إلى سلوك غير متوقع، بما في ذلك الأعطال وفقدان البيانات؛ أو قد لا تفعل شيئًا ببساطة.

قد تُحدد خيارات v8 المتوفرة لإصدار Node.js عن طريق تشغيل node --v8-options. وتوجد هنا قائمة غير رسمية من الخيارات وتأثيرها مُصانة من مجتمع البرمجة.

الاستخدام:

// طباعة أحداث GC على stdout لمدة دقيقة واحدة.

واجهة تطبيقات التسلسل (Serialization API)

مؤشر الاستقرار: 1 - تجريبي

توفر واجهة تطبيقات التسلسل وسيلة لتسلسل قيم JavaScript بطريقة متوافقة مع خوارزمية استنساخ HTML الهيكلية. ويتوافق التنسيق مع الإصدارات السابقة (أي آمن لتخزينه علي القرص).

لا تزال هذه الـ API قيد التطوير، والتغييرات قد تحدث حتى إزالة هذا التحذير (بما في ذلك التغييرات غير المتوافقة مع API أو تنسيق الأسلاك).

v8.serialize(value)‎ [المصدر]

أُضيف مع الإصدار: v8.0.0.

    • value من النوع <any>.

    • القيمة المُعادة: من النوع <Buffer>.

يستخدم DefaultSerializer في تسلسل القيمة value إلى داخل المخزن المؤقت.

v8.deserialize(buffer)‎ [المصدر]

أُضيف مع الإصدار: v8.0.0.

    • buffer من النوع <Buffer> | <Uint8Array>وهو مخزن مؤقت يُعاد من قِبَل serialize()‎.

يستخدم DefaultDeserializer مع الخيارات الافتراضية لقراءة قيمة JS من المخزن المؤقت.

الصنف: v8.Serializer

أُضيف مع الإصدار: v8.0.0.

Serializer()‎ الجديد

إنشاء كائن serializer جديد.

serializer.writeHeader()‎

يكتب ترويسة، والتي تتضمن إصدار تنسيق التسلسل.

serializer.writeValue(value)‎

    • value من النوع <any>.

يُسلسل قيمة JavaScript ويضيف التمثيل المتسلسل إلى المخزن المؤقت الداخلي.

ويُطلق خطأ إذا لم يتمكن من إجراء تسلسل القيمة value.

serializer.releaseBuffer()‎

    • القيمة المُعادة: من النوع <Buffer>.

يُعيد المخزن المؤقت الداخلي المخزون. لا يجب استخدام هذا المُسلسِل إذا حدث تفريغ للمخزن المؤقت. استدعاء هذا التابع يؤدي إلى سلوك غير مُعرَّف إذا فشلت عملية الكتابة السابقة.

serializer.transferArrayBuffer(id, arrayBuffer)‎

    • id من النوع <integer> وهو عدد صحيح 32 بت بدون إشارة.

    • arrayBuffer من النوع <ArrayBuffer> وهو مثيل لـ ArrayBuffer.

يشير إلى ArrayBuffer كما لو كانت محتوياته قد نُقلت خارج النطاق. ويمرر ArrayBuffer المقابل في سياق إلغاء التسلسل إلى التابع deserializer.transferArrayBuffer()‎.

serializer.writeUint32(value)‎

    • value من النوع<integer>.

كتابة عدد صحيح 32 بت خام بدون إشارة. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.

serializer.writeUint64(hi, lo)‎

    • hi  من النوع <integer>.

    • lo من النوع <integer>.

كتابة عدد صحيح 64 بت خام بدون إشارة، مقسمة إلى جزأين؛ علوي وسفلي كل منهما 32 بت. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.

serializer.writeDouble(value)‎

    • value من النوع <number>.

كتابة قيمة من النوع number. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.

serializer.writeRawBytes(buffer)‎

    • buffer من النوع <Buffer> | <Uint8Array>.

كتابه وحدات البايت الخام في المخزن المؤقت الداخلي للمُسلسِل. سيتطلب إلغاء التسلسل طريقة لحساب طول المخزن المؤقت. للاستخدام داخل التابع serializer._writeHostObject()‎ المخصص.

serializer._writeHostObject(object)‎

    • object من النوع <Object>.

ويُستدعى هذا التابع لكتابة نوع من الكائنات المضيفة، أي كائن مُنشأ بواسطة روابط C++‎ الأصلي. إذا لم يكن من الممكن إجراء تسلسل object، يجب إجراء استثناء مناسب.

هذا التابع غير موجود ضمن الصنف Serializer نفسه ولكن يمكن توفيره بواسطة الأصناف الفرعية.

serializer._getDataCloneError(message)‎

    • message من النوع <string>.

يستدعى هذا التابع لإنشاء كائنات الأخطاء التي ستنطلق عندما لا يمكن استنساخ كائن.

يعيد هذا التابع قيمة افتراضية إلى مُنشئ الخطأ Error ويمكن تجاوزه في الأصناف الفرعية.

serializer._getSharedArrayBufferId(sharedArrayBuffer)‎

    • sharedArrayBuffer من النوع <SharedArrayBuffer>

يُستدعى هذا التابع عند إجراء المُسلسِل عملية تسلسل لكائن SharedArrayBuffer. يجب أن يعيد مُعرِّف ID من النوع عدد صحيح بدون إشارة 32 بت للكائن، وذلك باستخدام نفس المعرف إذا كان قد سبق إجراء تسلسل للوسيط SharedArrayBuffer. عند إلغاء التسلسل، سيمرر هذا المعرف إلى deserializer.transferArrayBuffer()‎.

إذا تعذر إجراء تسلسل الكائن، يجب عمل استثناء.

هذا التابع غير موجود ضمن الصنف Serializer نفسه ولكن يمكن توفيره بواسطة الأصناف الفرعية.

serializer._setTreatArrayBufferViewsAsHostObjects(flag)‎

    • flag من النوع <boolean>. القيمة الافتراضية: false.

يحدد ما إذا كان سيُتعامل مع كائنات TypedArray و DataView ككائنات مضيفة، أي تمريرها إلى التابع serializer._writeHostObject()‎.

الصنف: v8.Deserializer

أُضيف مع الإصدار: v8.0.0.

Deserializer(buffer)‎ الجديد

    • buffer من النوع <Buffer> | <Uint8Array>وهو مخزن مؤقت يُعاد من قِبَل serializer.releaseBuffer()‎.

إنشاء كائن Deserializer جديد.

deserializer.readHeader()‎

يقرأ ويتحقق من الترويسة (بما في ذلك تنسيق الإصدار). على سبيل المثال، قد يرفض تنسيق أسلاك غير صالح أو غير مدعوم. في هذه الحالة، سينطلق Error.

deserializer.readValue()‎

إلغاء تسلسل قيمة JavaScript من المخزن المؤقت وإعادته.

deserializer.transferArrayBuffer(id, arrayBuffer)‎

    • id من النوع <integer> وهو عدد صحيح 32 بت بدون إشارة.

    • arrayBuffer من النوع <ArrayBuffer> | <SharedArrayBuffer> وهي مثيل لـ ArrayBuffer.

يشير إلى ArrayBuffer كما لو كانت محتوياته قد نُقلت خارج النطاق. تمرير arraybuffer المقابل في سياق التسلسل للتابع serializer.transferArrayBuffer()‎ (أو إعادة المعرف id من التابع serializer._getSharedArrayBufferId()‎ في حالات SharedArrayBuffer).

deserializer.getWireFormatVersion()‎

    • القيمة المُعادة: من النوع <integer>.

يقرأ إصدار تنسيق الأسلاك الأساسية. غالبًا ما يفيد في قراءة الشيفرات القديمة من الإصدارات القديمة لتنسيق الأسلاك. قد لا يستدعى قبل ‎.readHeader()‎.

deserializer.readUint32()‎

    • القيمة المُعادة: من النوع <integer>.

قراءة عدد صحيح 32 بت خام بدون إشارة. للاستخدام داخل أحد تخصيصات التابع deserializer._readHostObject()‎.

deserializer.readUint64()‎

    • القيمة المُعادة: من النوع <integer[]‎>.

قراءة عدد صحيح 64 بت خام بدون إشارة وإعادته كمصفوفة [hi, lo] تحتوي على عنصرين 32 بت بدون إشارة. للاستخدام داخل أحد تخصيصات التابع deserializer._readHostObject()‎.

deserializer.readDouble()‎

    • القيمة المُعادة: من النوع <number>.

قراءة قيمة من النوع number. للاستخدام داخل أحد تخصيصات التابع deserializer._readHostObject()‎.

deserializer.readRawBytes(length)‎ [المصدر]

    • length من النوع <integer>.

    • القيمة المُعادة: من النوع <Buffer>.

قراءة وحدات البايت الخام في المخزن المؤقت الداخلي لماسح التسلسل. يجب أن يقابل المعاملُ length طولَ المخزن المؤقت الذي سبق تمريره إلى التابع serializer.writeRawBytes()‎. للاستخدام داخل أحد تخصيصات التابع deserializer._readHostObject()‎.

deserializer._readHostObject()‎

ويُستدعى هذا التابع لقراءة نوع من الكائنات المضيفة، أي كائن مُنشأ بواسطة روابط C++‎ الأصلي. إذا لم يكن من الممكن إجراء تسلسل البيانات، يجب إجراء استثناء مناسب.

هذا التابع غير موجود ضمن الصنف Deserializer نفسه ولكن يمكن توفيره بواسطة الأصناف الفرعية.

الصنف: v8.DefaultSerializer

أُضيف مع الإصدار: v8.0.0.

صنف فرعي من Serializer الذي يُسلسل TypedArray (في Buffer معين) وكائنات DataView ككائنات مضيفة، ويخزن فقط جزء من ArrayBuffer الأساسية التي كانت تشير إليه.

الصنف: v8.DefaultDeserializer

أُضيف مع الإصدار: v8.0.0.

صنف فرعي من Deserializer ويقابل التنسيق المكتوب بواسطة DefaultSerializer.

مصادر