本文整理汇总了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)