最近在用Verilog编写一个小模块。模块并不难,关键在于对它的分析,遍历需要42亿种结果,verilog仿真刚打开,就被迫卡死了。
之后换matlab进行仿真,数据量还是很大。不过对算法的计算过程进行一定优化之后,勉强能跑了。
这个时候,就体现了游戏本和轻薄本之间的差别。轻薄本是在游戏本之后四年买的。接近一天一夜的时间。原计划十亿次的计算,只跑了大概九千万。游戏本一个晚上就跑了一次遍历,等到我停止轻薄本的仿真过程时,已经跑了两次遍历的结果。大概就是百倍的计算性能的差距吧。现在半天一个结果,勉强符合我的要求了。
再后来,在网上找到了一个cpp的测试程序,一秒钟两亿次的运算能力。很强。
我又写了一个类似的matlab程序,运行了只有81万次。差异巨大。以后还是要锻炼一下cpp代码的能力。
经过这次调试,我觉得,所有的语言都是为了实现某一功能而存在的。matlab很方便,cpp很快。重点在于,选择合适的。
cpp代码
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <algorithm>
#include <cstring>
using namespace std;
const int T=1000000000;
int main()
{
float a=3.1415926535898,b=30.1415926535898,c=300.14159265358,d;
for(int i=0;i<T;i++){
d=a*b+c;
}
printf("%.2f\n",(double)T/((double)clock()/CLOCKS_PER_SEC));
return 0;
}
matlab代码
clear all
t1=cputime
a=3.1415926535898
b=30.1415926535898
c=300.14159265358
e=0
while (cputime-t1 <=1)
d=a*b;
e=e+1;
end
t2=cputime
t=t2-t1
最后一次更新于2023-01-16
你写得非常清晰明了,让我很容易理解你的观点。
By 芋泥苑 at April 28th, 2023 at 06:07 pm.
确实cpp效率高,c效率更高φ( ̄∇ ̄o)
By yuukkki at January 21st, 2023 at 03:14 pm.