xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

js performance checker All In One

js performance checker All In One

js 性能检测

  • console.time

  • console.timeLog

  • console.timeEnd

console.time(`⏰ performance`);
for(let i = 0; i < 10**3; i += 100) {
  console.timeLog(`⏰ performance`);
}
console.timeEnd(`⏰ performance`);

⏰ performance: 0.01123046875 ms
⏰ performance: 0.06103515625 ms
⏰ performance: 0.0869140625 ms
⏰ performance: 0.10009765625 ms
⏰ performance: 0.1142578125 ms
⏰ performance: 0.130126953125 ms
⏰ performance: 0.14697265625 ms
⏰ performance: 0.158935546875 ms
⏰ performance: 0.175048828125 ms
⏰ performance: 0.18603515625 ms
⏰ performance: 0.2021484375 ms

image

console.time(`⏰ performance`);

for(let i = 0; i < 10**3; i += 100) {
  console.log(`i =`, i);
}

console.timeEnd(`⏰ performance`);
// ⏰ performance: 0.166259765625 ms

image

performance.now

高精度时间戳

const t1 = performance.now();

for(let i = 0; i < 10**3; i += 100) {
  console.log(`i =`, i);
}

const t2 = performance.now();

console.log(`⏰ performance`, t2 - t1);
// 

image

const t1 = new Date();

for(let i = 0; i < 10**3; i += 100) {
  console.log(`i =`, i);
}

const t2 = new Date();

console.log(`⏰ performance`, t2 - t1);

image

https://developer.mozilla.org/en-US/docs/Web/API/Performance

demos


"use strict";

/**
 *
 * @author xgqfrms
 * @license MIT
 * @copyright xgqfrms
 * @created 2023-02-19
 * @modified
 *
 * @description 454. 四数相加 II
 * @description 454. 4Sum II
 * @difficulty Medium
 * @ime_complexity O(n)
 * @space_complexity O(n)
 * @augments
 * @example
 * @link https://leetcode.com/problems/4sum-ii/
 * @link https://leetcode.cn/problems/4sum-ii/
 * @solutions
 *
 * @best_solutions
 *
 */

// export {};

const log = console.log;

function fourSumCount(nums1: number[], nums2: number[], nums3: number[], nums4: number[]): number {
  if(nums1.length === 1) {
    return nums1[0] + nums2[0] + nums3[0] + nums4[0] === 0 ? 1 : 0;
  }
  let num = 0;
  for(let i of nums1) {
    for(let ii of nums2) {
      for(let iii of nums3) {
        for(let iiii of nums4) {
          let temp = i + ii + iii + iiii;
          // console.log(`temp =`, temp);
          if(temp === 0) {
            num += 1;
          }
        }
      }
    }
  }
  // console.log(`num =`, num);
  return num;
};


/*

Runtime Error
<--- Last few GCs --->

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

Time Limit Exceeded

[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]

[-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]

*/

const nums = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];

const nums12 = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2];

const nums34 = [-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]


// 测试用例 test cases
const testCases = [
  {
    input: [[1,2], [-2,-1], [-1,2], [0,2]],
    result: 2,
    desc: 'value equal to 2',
  },
  {
    input: [[0], [0], [0], [0]],
    result: 1,
    desc: 'value equal to 1',
  },
  {
    input: [nums, nums, nums, nums],
    result: 100000000,
    desc: 'value equal to 100000000',
  },
  {
    input: [nums12, nums12, nums34, nums34],
    result: 1600000000,
    desc: 'value equal to 1600000000',
  },
];

for (const [i, testCase] of testCases.entries()) {
  console.time(`⏰ performance`);
  const [first, second, third, fourth] = testCase.input;
  const result = fourSumCount(first, second, third, fourth);
  log(`test case ${i} result: `, result === testCase.result ? `✅ passed` : `❌ failed`, result);
  console.timeLog(`⏰ performance`);
  console.timeEnd(`⏰ performance`);
}



// $ npx ts-node ./454\ 4sum-ii.ts

/*

test case 0 result:  ✅ passed 2
⏰ performance: 1.12ms
⏰ performance: 1.268ms
test case 1 result:  ✅ passed 1
⏰ performance: 0.044ms
⏰ performance: 0.079ms
test case 2 result:  ✅ passed 100000000
⏰ performance: 212.757ms
⏰ performance: 212.815ms
test case 3 result:  ✅ passed 1600000000
⏰ performance: 3.090s
⏰ performance: 3.090s


*/



(🐞 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!

refs



©xgqfrms 2012-2021

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @ 2023-02-19 15:11  xgqfrms  阅读(35)  评论(2)    收藏  举报