做了一个C++程序和JS程序效率对比的小测试,性能差距在1.6倍到3倍之间。
JS测试代码
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
var beginTime = performance.now();
var numberCount = 1000000000;
var avgValue = 0.0;
for (var i = 0; i < numberCount; ++i)
{
avgValue += Math.random() / numberCount;
}
var endTime = performance.now();
var elapsedTime = endTime - beginTime;
alert(`计算${numberCount}个随机数的平均值耗时${elapsedTime}毫秒。`);
alert(`计算结果:${avgValue}`);
</script>
</body>
</html>
C++测试代码
// CppPerformanceTest.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <windows.h>
#include <time.h>
int main()
{
time_t beginTime = clock();
unsigned long long numberCount = 1000000000;
double numberCountF = (double)numberCount;
double avgValue = 0.0;
for (unsigned long long i = 0; i < numberCount; ++i)
{
avgValue += (double)rand() / numberCountF;
}
time_t endTime = clock();
time_t elapsedTime = endTime - beginTime;
printf("计算%llu个随机数的平均值耗时%llu毫秒。\n", numberCount, elapsedTime);
printf("计算结果:%f\n", avgValue);
system("pause");
}
在台式机上JS执行时间在16000毫秒左右,C++执行时间在10000毫秒左右。笔记本上JS执行时间46000毫秒左右,C++执行时间16000毫秒左右。
芸芸小站首发,阅读原文:http://xiaoyunyun.net/index.php/archives/220.html