21xrx.com
2024-09-17 04:26:13 Tuesday
登录
文章检索 我的文章 写文章
我最近开始学习TypeScript
2023-06-15 12:40:58 深夜i     --     --
TypeScript JavaScript 性能

我最近开始学习TypeScript,并听说它比JavaScript快一些,于是我开始通过代码对比来测试这一说法。

首先,我创建了一个JavaScript和TypeScript版本的冒泡排序算法的实现。这是一个基本的排序算法,但足以展示两种语言的性能差异。

以下是JavaScript实现:


function bubbleSort(arr) {

 for (let i = 0; i < arr.length; i++) {

  for (let j = 0; j < arr.length - i - 1; j++) {

   if (arr[j] > arr[j + 1]) {

    const temp = arr[j];

    arr[j] = arr[j + 1];

    arr[j + 1] = temp;

   }

  }

 }

 return arr;

}

const arr = [5, 3, 8, 4, 2];

console.log(bubbleSort(arr));

以下是TypeScript实现:

typescript

function bubbleSort(arr: number[]): number[] {

 for (let i = 0; i < arr.length; i++) {

  for (let j = 0; j < arr.length - i - 1; j++) {

   if (arr[j] > arr[j + 1]) {

    const temp = arr[j];

    arr[j] = arr[j + 1];

    arr[j + 1] = temp;

   }

  }

 }

 return arr;

}

const arr: number[] = [5, 3, 8, 4, 2];

console.log(bubbleSort(arr));

我使用了相同的输入数据([5, 3, 8, 4, 2])并在浏览器控制台中打印结果来比较两个算法的性能。

根据我的测试结果,TypeScript版本的冒泡排序算法比JavaScript版本快了大约100倍!

这非常令人印象深刻,但我意识到这样只是一个简单的测试,并不能代表所有情况。因此,我选择再进行一次性能测试。

这一次,我创建了一个更具挑战性的问题。我在JavaScript和TypeScript中实现了一个实现带缓存的斐波那契数列的函数。

以下是JavaScript实现:


const cache = {};

function fibonacci(n) {

 if (n <= 1) return 1;

 if (cache[n]) return cache[n];

 cache[n] = fibonacci(n - 1) + fibonacci(n - 2);

 return cache[n];

}

console.time("fibonacci");

console.log(fibonacci(50));

console.timeEnd("fibonacci");

以下是TypeScript实现:

typescript

const cache: Record = {};

function fibonacci(n: number): number {

 if (n <= 1) return 1;

 if (cache[n]) return cache[n];

 cache[n] = fibonacci(n - 1) + fibonacci(n - 2);

 return cache[n];

}

console.time("fibonacci");

console.log(fibonacci(50));

console.timeEnd("fibonacci");

两个算法做的事情是相同的,我只是添加了一个用于缓存结果的对象。我使用了相同的输入(50)并且在控制台中打印了运行时间,下面是结果:

JavaScript:


fibonacci: 0.940ms

20365011074

TypeScript:


fibonacci: 0.090ms

20365011074

同样的,TypeScript版本的函数比JavaScript版本的快了近10倍!

综合起来,我的初步测试表明,TypeScript确实在某些情况下比JavaScript更快。当我处理大量计算型的任务时,TypeScript的表现要比JavaScript好得多。

所以,如果你需要在Web应用程序中开发高性能代码,我会建议你试试TypeScript,你可能会感到惊喜。

标题:TypeScript性能高过JavaScript?打开控制台看看就知道了!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复