laptop: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz..

Test1:

最后一行:时间(ms)

#pragma GCC optimize("O2")
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char const *argv[]) {
int t = clock();
int a = 1000000000,b = 1;
while(a) {
b <<= 1;
a--;
}
printf("%d ms\n",clock() - t);
return 0;
} // 0 ms
var t;
t = new Date;
var a = 1000000000,
b = 1;
while(a) {
b <<= 1;
a--;
}
console.log(new Date - t + "ms"); // 915ms

Test2:

#pragma GCC optimize("O2")
#include <bits/stdc++.h>
using namespace std;
int a[10000100];
void quick_sort(int a[], int l, int r) {
if (l < r) {
int i = l, j = r, x = a[l];
while (i < j) {
while(i < j && a[j] >= x) j--;
if(i < j) a[i++] = a[j];
while(i < j && a[i] < x) i++;
if(i < j) a[j--] = a[i];
}
a[i] = x;
quick_sort(a, l, i - 1);
quick_sort(a, i + 1, r);
}
}
int main(int argc, char const *argv[]) {
srand((int)time(0));
for(int i = 0;i < 10000000; i++) {
a[i] = rand();
}
int t = clock();
quick_sort(a,0,10000000);
printf("%d ms\n",clock() -t);
return 0;
} // 1738 ms
function quick_sort(a,l,r) {
if (l < r) {
var i = l, j = r, x = a[l];
while (i < j) {
while(i < j && a[j] >= x) j--;
if(i < j) a[i++] = a[j];
while(i < j && a[i] < x) i++;
if(i < j) a[j--] = a[i];
}
a[i] = x;
quick_sort(a, l, i - 1);
quick_sort(a, i + 1, r);
}
}
var s,i,t;
for(i=0,s=[];i<10000000;i++) s.push(Math.random()*1E7|0);
t = new Date;
quick_sort(s,0,10000000);
console.log(new Date - t + " ms"); // 3080 ms

Test3:

#pragma GCC optimize("O2")
#include <bits/stdc++.h>
using namespace std;
const int maxn = 50000000;
int a[maxn];
int p[maxn],m[maxn];
int pc;
int main(int argc, char const *argv[]) {
int t = clock();
for(int i = 2; i < maxn; i++) {
if(m[i] == 0) {
p[++pc] = m[i] = i;
}
int k = 0;
for(int j = 1; j <= pc && p[j] <= m[i] && (k = p[j] * i) < maxn; j++) {
m[k] = p[j];
}
}
int ans = 0;
for(int i = 1; i <= pc; i++) {
ans ^= p[i];
}
printf("%d\n", ans);
printf("%d ms\n",clock() - t);
return 0;
} // 338 ms
var pc = 0;

var m = [];
var p = [];
function solve() {
// console.log("ok");
var i;
for(i = 2 ;i < 50000000;i++) {
if(m[i] == null) {
// console.log(i);
p[++pc] = m[i] = i;
}
var k = 0;
var j ;
for(j = 1; j <= pc && p[j] <= m[i] && (k = p[j] * i) < 50000000; j++) {
m[k] = p[j];
}
}
// console.log("pc = " + pc);
var ans = 0;
for(var i = 1; i <= pc; i++) {
ans ^= p[i];
}
console.log("ans= " + ans);
}
t = new Date;
solve();
console.log(new Date - t + " ms"); // 8096 ms

Test4:

#pragma GCC optimize("O2")
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000; int G[1000][1000];
int sed = 0;
inline int getRand()
{
return sed = (sed * sed * 73 + sed * 233 + 19260817) & 0x0000ffff;
}
int main(int argc, char const *argv[]) {
int t = clock();
for(int i = 0; i < maxn; i++) {
for(int j = 0; j < maxn; j++) {
G[i][j] = getRand();
}
}
for(int i = 0; i < maxn; i++) {
for(int j = 0; j < maxn; j++) {
for(int k = 0; k < maxn; k++) {
if(G[j][k] > G[j][i] + G[i][k]) {
G[j][k] = G[j][i] + G[i][k];
}
}
}
}
int ans = 0;
for(int i = 0; i < maxn; i++) {
for(int j = 0; j < maxn; j++) {
ans ^= G[i][j];
}
}
printf("%d\n", ans);
printf("%d ms\n",clock() - t);
return 0;
} // 1718 ms
var sed = 0;
var G = new Array();
function getRand() {
var res = sed = (sed * sed * 73 + sed * 233 + 19260817) & 0x0000ffff;
// console.log("res = " + res);
return res;
}
function solve() {
// console.log("ok");
for(var i = 0; i < 1000; i++) {
G[i] = new Array();
for(var j = 0; j < 1000; j++) {
G[i][j] = getRand();
}
}
for(var i = 0; i < 1000; i++) {
for(var j = 0; j < 1000; j++) {
for(var k = 0; k < 1000; k++) {
if(G[j][k] > G[j][i] + G[i][k]) {
G[j][k] = G[j][i] + G[i][k];
}
}
}
}
var ans = 0;
for(var i = 0; i < 1000; i++) {
for(var j = 0; j < 1000; j++) {
ans ^= G[i][j];
}
}
console.log("ans= " + ans);
}
t = new Date;
solve();
console.log(new Date - t + " ms"); // 3440 ms

Test5:

#pragma GCC optimize("O2")
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000000000; // 1e9
typedef unsigned long long ull;
int P = 1000000007; int main(int argc, char const *argv[]) {
int t = clock();
ull ans = 1;
for(int i = 1; i < maxn; i++) {
ans = ans * i % P;
}
printf("%llu\n",ans);
printf("%d ms\n",clock() - t);
return 0;
} // 11953 ms
var P = 1000000007;
var maxn = 1000000000;// 1e9
function solve() {
// console.log("ok");
var ans = 1;
for(var i = 1; i < maxn; i++) {
ans = ans * i % P;
}
console.log("ans= " + ans);
}
t = new Date;
solve();
console.log(new Date - t + " ms"); // 32175 ms

理性分析 C++(-O2) 和 JS 的性能差距的更多相关文章

  1. 准备:新V8即将到来,Node.js的性能正在改变

    V8的Turbofan的性能特点将如何对我们优化的方式产生影响 审阅:来自V8团队的Franziska Hinkelmann和Benedikt Meurer. **更新:Node.js 8.3.0已经 ...

  2. Babylon.js官方性能优化文档中文翻译

    在这里列出Babylon.js官方性能优化文档的中英文对照,并在CardSimulate项目里对其中的一些优化方法进行实践. How To 如何 Optimize your scene 优化你的场景 ...

  3. 多个JS文件性能优化

    页面中引入的JS文件是阻塞式加载的,这样会影响页面性能.以下是JS文件性能优化方法: 一:将所有的<script>标签放到页面底部,也就是</body>闭合标签之前,这能确保在 ...

  4. js开发性能(一)

    随着js技术的发展,性能问题开始被越来越多的人关注,最近了解了一些关于前端性能的问题,这里主要讨论一下在js脚本加载和执行的过程中,我们应该怎么样来提高js的性能. js脚本的处理 初学前端的时候,我 ...

  5. 纵论WebAssembly,JS在性能逆境下召唤强援

    webassembly的作用 webassembly是一种底层的二进制数据格式和一套可以操作这种数据的JS接口的统称.我们可以认为webassembly的范畴里包含两部分 wasm: 一种体积小.加载 ...

  6. php 5.6,7.0静态方法调用和new调用方法性能差距

    windows7 64 机器I5 8G内存,128G SSD 吐槽一下,win10内存的消耗,真的可怕 测试代码 class staticTest { public function test() { ...

  7. js 动画性能分析 transfrom

    1.动画实现代码 (1)使用定位实现: <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...

  8. 页面装载js及性能分析方法

    一.装载 先装载静态页面的引用js文件,然后查找引用文件中是否包含onload函数,比如main.js中包含onload函数,在main.js中查找是否有对其他js文件的引用,优先装载引用js文件,被 ...

  9. [Ext JS 4]性能优化

    一般的优化技巧 1. 检查你定义的时间监听器 正确的设置事件监听器对性能会有很大的影响. 举例来说, 在定义一个store的时候,设置一个load 的事件去触发从后台读取数据,如果设置single 的 ...

随机推荐

  1. 如何调试Blink?

    内容 尽管有很多工具和技巧可用于调试Blink,这个文章的重点调试Blink除布局測试之外的feature. 1 介绍 2 Linux 2.1 入门 2.2 启动Debugger 3 实用的工具 3. ...

  2. 无法往SQL Server Management Studio拖脚本

    解决方法:不要用Administrator权限打开sql server

  3. Id选择器和Class选择器

    http://www.runoob.com/css/css-id-class.html http://www.w3school.com.cn/css/css_syntax_id_selector.as ...

  4. zzulioj--1089--make pair(dfs+模拟)

    1809: make pair Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 60  Solved: 44 SubmitStatusWeb Board ...

  5. dubbo问题求解

    各位大牛好,小弟公司开发中遇到一个很奇怪的问题望有大神指教一下,实在是已经搞了3天了一点头绪没有,公司使用的是eclipse+maven+zookeper+dubbo主要是dubbo的问题,刚开始使用 ...

  6. OpenCV中Mat数据的访问报错

    最近再写一段程序的时候,要访问Mat中的元素.在定义Mat型数据的时候,用 Mat ObjectPoints(48,3,CV_32FC1,0) 对其进行初始化后,用at进行访问时报内存错误. Mat ...

  7. scrapy框架设置代理

    网易音乐在单ip请求下经常会遇到网页返回码503的情况经查询,503为单个ip请求流量超限,猜测是网易音乐的一种反扒方式因原音乐下载程序采用scrapy框架,所以需要在scrapy中通过代理的方式去解 ...

  8. SpringMVC与SpringBoot返回静态页面遇到的问题

    1.SpringMVC静态页面响应 package com.sv.controller; import org.springframework.stereotype.Controller; impor ...

  9. BZOJ2690: 字符串游戏(平衡树动态维护Dfs序)

    Description 给定N个仅有a~z组成的字符串ai,每个字符串都有一个权值vi,有M次操作,操作分三种: Cv x v':把第x个字符串的权值修改为v' Cs x a':把第x个字符串修改成a ...

  10. cogs 1755. 爱上捉迷藏

    1755. 爱上捉迷藏 ☆   输入文件:kadun.in   输出文件:kadun.out   简单对比时间限制:0.001 s   内存限制:2 MB [背景] 乃们都玩过赛尔号吧……,那有木有玩 ...