انتقل إلى المحتوى

الأداء

التوقيت عالي الدقة والعلامات والقياسات والمراقبون.

في هذه الصفحة

يتشارك الكائن العام ⁦performance⁩ و⁦node:perf_hooks⁩ خطًا زمنيًا واحدًا.

التوقيت والمدخلات

performance.now();        // milliseconds since timeOrigin
performance.mark("start");
performance.measure("work", "start");

performance.getEntriesByName("work")[0].entryType; // "measure"

تعيد ⁦getEntries()⁩ و⁦getEntriesByName()⁩ و⁦getEntriesByType()⁩ مصفوفات جديدة مرتّبة حسب وقت البدء. وتحذف ⁦clearMarks()⁩ و⁦clearMeasures()⁩ المدخلات المطابقة.

يمكن إنشاء ⁦PerformanceMark⁩. أما ⁦Performance⁩ و⁦PerformanceEntry⁩ و⁦PerformanceMeasure⁩ فلا يمكن إنشاؤها مباشرة.

PerformanceObserver

const observer = new PerformanceObserver((list) => {
  for (const entry of list.getEntries()) {
    console.log(entry.name, entry.entryType);
  }
});

observer.observe({ entryTypes: ["mark", "measure"] });
performance.mark("ready");

يحدث تسليم المراقِب عند نقطة تحقق المهام الدقيقة. ويوقف ⁦disconnect()⁩ المراقبة ويمسح المدخلات المخزّنة مؤقتًا؛ ويفرّغ ⁦takeRecords()⁩ المخزن المؤقت الحالي.

تحتوي ⁦PerformanceObserver.supportedEntryTypes⁩ على ⁦mark⁩ و⁦measure⁩ و⁦node⁩ و⁦function⁩.

تستخدم قيم ⁦detail⁩ للعلامات والقياسات سلوك ⁦structured-clone⁩ نفسه المستخدم في مراسلة الويب. فالأنواع مثل ⁦Date⁩ و⁦RegExp⁩ و⁦Map⁩ و⁦Set⁩ و⁦ArrayBuffer⁩ تحتفظ بنوعها ومحتوياتها؛ أما الدوال فترمي ⁦DataCloneError⁩.

Reference

Status: Full · Not measured · since 1.1.0

Exports

ExportKindStatusNotes
PerformanceEntryclassFullname, entryType, startTime, duration, detail, toJSON()
PerformanceMarkclassFulldetail
PerformanceMeasureclassFulldetail
PerformanceObserverEntryListclassFullgetEntries(), getEntriesByName(), getEntriesByType()
PerformanceObserverclassFullobserve(), disconnect(), takeRecords(), PerformanceObserver.supportedEntryTypes
PerformanceclassFullnow(), timeOrigin, mark(), measure(), getEntries(), getEntriesByName(), getEntriesByType(), clearMarks(), clearMeasures(), toJSON()

هل كانت هذه الصفحة مفيدة؟