我一直在用Deno一点。出于某种原因,我决定比较 Deno 和 Node 之间的性能。Deno 的性能现在似乎是一个热门话题,但人们几乎总是在讨论 HTTP 吞吐量。我感兴趣的是看看 Deno 在基本 JS 功能方面与 Node 相比如何for loops,例如, Array.map, JSON.stringify, ...
我正在比较 Deno 1.5.2 (v8 8.7.220.3) 和 Node 15.2.0 (v8 8.6.395.17)。由于 JS 在这两种情况下都由非常相似的 v8 版本解释,因此我希望代码在两种情况下都能以同样快的速度运行。
我准备了一个.js文件,在两个运行时上运行 10 个函数 100 万次。我过去常常Date.now()以毫秒为单位测量持续时间,因为它在两个运行时之间都很常见。
const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const obj1 = {foo: 1};
const obj2 = {bar: 1};
const json = JSON.stringify(obj1);
// Declare the performance tool (different between …Run Code Online (Sandbox Code Playgroud) 我有一个 Typescript 项目,我在Date函数内部调用。我想使用与从中Date重载的构造函数相同的函数参数:
interface DateConstructor {
new(): Date;
new(value: number | string | Date): Date;
new(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;
// ...
}
Run Code Online (Sandbox Code Playgroud)
我想使用扩展运算符将参数传递给Date. 所以我的函数应该是这样的:
function myFn(...args: DateComponents): Date {
return new Date(...args)
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我实际上并没有返回日期,但这仅用于测试...
现在的问题是如何定义DateComponents. 我成功地分别实现了 3 个重载签名DateConstructor。
// Case A: No argument provided
interface A {
(): Date;
}
const a: A = function (...args: []): Date { …Run Code Online (Sandbox Code Playgroud)