草庐IT

PERFORMANCE

全部标签

java - 限制 try block 范围。有关系吗?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Shouldjavatryblocksbescopedastightlyaspossible?保持较小的tryblock大小是否有任何性能优势(特别是在C++或Java中)[除了它可以为读者提供更多关于哪个语句可以抛出的信息]。鉴于以下方法,我不想抛出该方法。voidfunction()throwsException{statement1statement2statement3//canthrowstatement4statement5}这样做更好吗:选项1voidfunction(){try{stateme

c++ - 对一段独立于 CPU 性能的代码进行基准测试?

我的目标是:我想测试一段代码(或函数)的性能,就像我在单元测试中测试该函数的正确性一样,比如说这个对标过程是一个“便携”的“功能性能指标”我的问题是:我们通常通过使用计时器来计算代码执行期间耗时来对代码进行基准测试。并且该方法取决于硬件或操作系统或其他因素。我的问题是:是否有一种方法可以获得独立于主机性能(CPU/OS/等)的“功能性能指标”,或者如果不是“独立的””可以说它是“相对于”某个固定值的。因此“功能性能指标”的值在某种程度上在任何平台或硬件性能上仍然有效。例如:FPI值可以用执行一次调用所需的算术指令数与基准函数相比的浮点值,例如函数B的评级指数为1.345(性能比基准函数

c++ - 帮助模板化字节交换功能,性能受到影响?

templateinlinevoid*byteswap(void*__x);templateinlinevoid*byteswap(void*__x){return(*(uint16*)__x>>8)|(*(uint16*)__xinlinevoid*byteswap(void*__x){return(byteswap(__x&0xffff)>16));}templateinlineTbyteswap(T&swapIt){return(T*)byteswap(swapIt);}intmain(){uint32i32=0x01020304;uint16i16=0x0102;byteswa

c++ - BOOST uBLAS 矩阵乘积极慢

有没有办法boostboostublas产品的性能?我有两个矩阵A,B,我想对其进行多重/添加/子/...在MATLAB与C++中,对于2000x2000矩阵运算,我得到以下时间[s]OPERATION|MATLAB|C++(MSVC10)A+B|0.04|0.04A-B|0.04|0.04AB|1.0|62.66A'B'|1.0|54.35为什么这里会有这么大的性能损失?矩阵只是真正的double。但我还需要正定、对称、矩形积。编辑:代码很简单matrixA(2000,2000);//FillMatrixAmatrixB=A;C=A+B;D=A-B;E=prod(A,B);F=pro

c++ - insert in string的效率

我正在尝试为比longlong更大的非常大的整数编写这个自定义加法类。我正在研究的一种方法是将整数保留为字符串,然后将字符转换为它们的int组件,然后添加每个“列”。我正在考虑的另一种方法是将字符串拆分为多个字符串,每个字符串都是longlong的大小,然后使用字符串流将其转换为longlong添加然后重新组合。无论如何,我发现加法最容易反向完成以允许结转数字这一事实。在这种情况下,我想知道字符串插入方法的效率。似乎因为一个字符串是一个字符数组,所以所有的字符都必须移动一个。所以它会有所不同,但效率似乎是O(n),其中n是字符串中的字符数。这是正确的,还是只是天真的解释?编辑:我现在对

c++ - 从文件中读取大量数据并以有效的方式解析日期。如何提高海量数据的性能?

我正在从文件中读取大量数据://abc.txt10121415129-1214-18-900-123414512131232685176-59-025----etcfun(char*p,intx,inty,intz){}我尝试过使用atoi、strtok,但是当数组太大并且sscanf也是时,它们是实时耗时的很慢。如何提高海量数据的性能?我正在使用strtok进行解析。我正在寻找解析每一行的快速方法。我正在阅读每一行,然后将每一行解析为:char*ptr;ptr=strtok(str,"");while(ptr!=NULL){intvalue1=atoi(ptr);ptr=strtok

c++ - OpenMP 和 C++ 并行 for 循环 : why does my code slow down when using OpenMP?

我有一个关于使用OpenMP(与C++)的简单问题,我希望有人能帮助我。我在下面提供了一个小示例来说明我的问题。#include#include#include#includeusingnamespacestd;intmain(){srand(time(NULL));//Seedrandomnumbergeneratorvectorv;//Createvectortoholdrandomnumbersininterval[0,9]vectord(10,0);//Vectortoholdcountsofeachintegerinitializedto0for(inti=0;i::iter

c++ - C++:为什么这可以加快我的代码的速度?

我有以下功能doublesingle_channel_add(intpatch_top_left_row,intpatch_top_left_col,intimage_hash_key,Mat*preloaded_images,int*random_values){intfirst_pixel_row=patch_top_left_row+random_values[0];intfirst_pixel_col=patch_top_left_col+random_values[1];intsecond_pixel_row=patch_top_left_row+random_values[

c++ - 附加条件语句使程序更快

看完Whyisitfastertoprocessasortedarraythananunsortedarray?,我在主循环中添加了一个额外的测试。似乎这个额外的测试使程序更快。intmain(){//GeneratedataconstunsignedarraySize=32768;intdata[arraySize];for(unsignedc=0;c=128)sum+=data[c];//Withthisadditionaltest,executionbecomesfasterif(data[c](clock()-start)/CLOCKS_PER_SEC;std::cout通过附

C++ Performance 从磁盘写入和读取

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:WritingabinaryfileinC++veryfast我在内存中有大量无符号32位整数(15亿个条目)。我需要将它们写入文件并将它们读回主内存。现在,我使用:ofstreamofs;ofs.open(filename);for(uint64_ti=0;i和ifstreamifs;ifs.open(filename);for(uint64_ti=0;i>integers;这需要几分钟才能执行。任何人都可以帮助我,有没有任何库方法可以更快地完成它?或者任何建议,以便我可以运行性能测试?谁能告诉我一些使用mm