有关 C++里一些函数的计算速度测试
来源:互联网 发布:零售业数据定义 编辑:程序博客网 时间:2024/05/20 03:46
有关 C++里一些函数的计算速度测试
反三角比三角计算快,tanh计算比exp快...
atan2比atan慢这么多。 好神奇
#include<iostream>#include <fstream>#include <algorithm>#include <time.h>#include<windows.h>using namespace std; int main(){double i, j, k, count = 1000;double tmp, time;clock_t start_time = clock();DWORD dwEnd, dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){//tmp = atan(double(i) / j);tmp = rand();//cout << tmp << endl;}}}dwEnd = GetTickCount();cout << "The rand run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count;++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = atan(double(i) /double(j));//tmp = atan(rand());//cout << tmp << endl;}}}dwEnd = GetTickCount();cout << "The atan run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = atan2(double(i) , double(j));//tmp = atan2(rand(), j);}}}dwEnd = GetTickCount();cout << "The atan2 run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = atan(double(i) / double(j));if (j > 0){tmp += 1.7;}//tmp = atan(rand());//cout << tmp << endl;}}}dwEnd = GetTickCount();cout << "The atan + if run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = asin(double(i) / double(j));//tmp = asin(rand() / RAND_MAX);}}}dwEnd = GetTickCount();cout << "The asin run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = asin(double(i) / double(j));//tmp = acos(rand() / RAND_MAX);}}}dwEnd = GetTickCount();cout << "The acos run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = tanh(double(i) / double(j));//tmp = tanh(rand());}}}dwEnd = GetTickCount();cout << "The tanh run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = exp(double(i) / j);}}}dwEnd = GetTickCount();cout << "The exp run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间*/dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = log(double(i) / double(j));//tmp = log(rand() / RAND_MAX);}}}dwEnd = GetTickCount();cout << "The log run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){//tmp = tan(i);tmp = tan(double(i) / double(j));//tmp = tan(rand());}}}dwEnd = GetTickCount();cout << "The tan run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = sin(double(i) / double(j));//tmp = sin(rand() / RAND_MAX);}}}dwEnd = GetTickCount();cout << "The sin run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = cos(double(i) / double(j));//tmp = cos(rand() / RAND_MAX);}}}dwEnd = GetTickCount();cout << "The cos run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = double(i) / double(j);//tmp = double(i) /(rand() / RAND_MAX);}}}dwEnd = GetTickCount();cout << "The div run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = double(i) * double(j);// (rand() / RAND_MAX);}}}dwEnd = GetTickCount();cout << "The mult run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = double(i) + double(j);// (rand() / RAND_MAX);}}}dwEnd = GetTickCount();cout << "The add run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间dwStart = GetTickCount();for (k = 0; k < count; ++k){for (i = 0; i < 256; ++i){for (j = 1; j < 256; ++j){tmp = double(i) - double(j);// / RAND_MAX;}}}dwEnd = GetTickCount();cout << "The add run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间clock_t end_time = clock();dwEnd = GetTickCount();time = double(end_time - start_time) / CLOCKS_PER_SEC;cout << time << "s" << endl;cout << "The run time is:" << (dwEnd - dwStart) << "ms!" << endl;//输出运行时间cin >> i;return 0;}
0 0
- 有关 C++里一些函数的计算速度测试
- 一些HASH函数的速度测试
- C语言里scanf函数的有关问题
- C语言 递归函数的一些测试
- 测试CopyMemory函数的速度
- Winform里有关Combobox的一些操作
- 有关字符串的一些函数
- 有关c的一些总结
- C语言实验里用的一些时间函数
- 有关CPU的一些概念和计算
- 有关C++多态的一些测试
- 有关C++多态的一些测试
- 有关软件测试的一些知识点
- phpmcs 里的一些函数
- c有关内存的函数
- C/C++——一些与输入有关的istream类成员函数
- C语言--有关数组的计算
- 有关NIOS里用到SDRAM相移的计算
- 做前端的经验博
- Textview超出尺寸用...来表示
- python线程join的正解
- 看《暗时间》总结体会
- #include< >和#include""的区别
- 有关 C++里一些函数的计算速度测试
- Linux端JBOSS修改端口
- 将Eclipse代码导入到AndroidStudio
- POSIX风格正则表达式
- ubuntu 14.04无法进入unity
- HTML5工具/网站推荐
- ajax
- hdu 5489 Removed Interval LIS变形
- SQL Server学习记录之数学函数