本文整理匯總了TypeScript中perf_hooks.performance.timerify方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript performance.timerify方法的具體用法?TypeScript performance.timerify怎麽用?TypeScript performance.timerify使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類perf_hooks.performance
的用法示例。
在下文中一共展示了performance.timerify方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: require
/*
----------------------
Performance monitoring instrumentation code
Will output the most expensive require resolutions to the console
Usage: set `BP_DEBUG_REQUIRE` to `true`
------------------------
*/
if (global.process.env.BP_DEBUG_REQUIRE) {
const { performance, PerformanceObserver } = require('perf_hooks')
const os = require('os')
const SAMPLING_INTERVAL = 5000
const TOP_COUNT = 10
Module.prototype.require = performance.timerify(Module.prototype.require)
require = performance.timerify(require)
let allRequires: { duration: Number; call: string }[] = []
const obs = new PerformanceObserver(list => {
const entries = list.getEntries()
entries.forEach(e => allRequires.push({ duration: e.duration, call: e[0] }))
})
obs.observe({ entryTypes: ['function'], buffered: true })
setInterval(() => {
const significantCalls = _.take(_.orderBy(allRequires, 'duration', 'desc'), TOP_COUNT)
const formattedCalls = significantCalls.map((x, i) => `${i}) ${x.duration}\t\t${x.call}`).join(os.EOL)
console.log(formattedCalls)