clock()可以用作可靠的API来测量CPU执行代码片段所花费的时间吗?当使用times()/ clock()验证时,两者似乎都不能精确测量所花费的CPU时间.
首先,可以使用API clock()/ times()来测量函数/代码片段的执行时间,如下例所示?有没有更好更可靠的选择?该机制适用于Linux,HP-UX,IBM-AIX和Sun Solaris,因为我们需要测量(和&比较)所有这些平台上的一段代码的性能.
请建议.另外,如果我遗漏了任何微不足道的事,请告诉我.
bbb@m_001:/tmp/kk1$ ./perf_clock 102400
{clock(): S 0 E 0 D 0.0000000000}
bbb@m_001:/tmp/kk1$ ./perf_clock 204800
{clock(): S 0 E 10000 D 0.0100000000}
bbb@m_001:/tmp/kk1$ cat perf_clock.c
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
void test_clock(char* sbuf, int* len){
clock_t start, end; int i=0;
start = clock();
while(i++ < 500) memset((char*)sbuf,0,*len);
end = clock();
printf("{clock(): S %10lu E %10lu D %15.10f}\n",
start,end,(end-start)/(double) CLOCKS_PER_SEC);
}
int main(int argc,char* argv[])
{
int len=atoi(argv[1]);
char *sbuf=(char*)malloc(len);
test_clock(sbuf,&len);
free(sbuf); return …Run Code Online (Sandbox Code Playgroud) 问题:
一个庞大的代码库,跨越数百万SLoC,由大量的第二/第三速率程序员(大多数人并不关心)维护(支持/主动增强等).几十年前,很少有智能人员使用下面使用CVS的包装器,当前这一代开发人员正在使用该系统(其中90%的人没有直接使用CVS,或者听说过/使用过另一个命令行源控制系统) .
效果:
使用CVS和跨多个模块的多个团队,不可避免地=> CVS分支合并到主干.这将是一种以最虔诚和仪式可能的方式实践的活动.[=>蛮力; 计划好几个星期,涉及十几个人2/4天.手动处理数百个(有时数千个)源. 有趣的是,涉及的人不是修复的原始所有者,他们只是通过检查差异; 真的,不是在开玩笑!这导致库/模块/功能的完整性存在很多不一致性,并且在这些合并期间花费了太多精力来纠正由于回归导致的缺陷.
而现在,问题是:
什么替代源控制系统可以带来一些积极的变化,并改善程序员/经理和环境中的其他人的生活?
由于身边的每一个人似乎都醉KoolAid(同唱"这 - 是 - 如何-事情,是全熟,处处"),甚至没有给出关于寻找一个替代一想,是时候有人做到这一点.但考虑到那些使用该系统的人,应牢记以下几个方面.
所以,请建议.有希望&&出路吗?:) 我很确定像git这样的东西会被彻底拒绝(他们相信"git只适用于聪明的人")
编辑:我也考虑过Mercurial和BitKeeper,并向链接人员提及过它.希望最好的!谢谢!:)
[TRIVIAL] [求助]
tl:dr - DOW CRLF觉得好像是胡子行为不端; 琐碎的错误!
我不确定为什么awk/gawk的表现如此.任何提示?有没有看过awk结果覆盖终端上的列?我只在一台机器上看到这个; 在其他地方,东西工作得很好!不确定这是终端行为不端还是其他任何事情.一个stty sane似乎并没有帮助的.有谁见过类似的东西?
$ cat in.txt
2132088 AAA_WEB_50181_552222195-1
2110665 AAA_WEB_50177_547796499-2
2157591 AAA_WEB_50181_551310844-1
2117370 AAA_WEB_50178_549250104-1
2109777 AAA_WEB_50180_551512637-1
2112704 AAA_WEB_50179_410838823-13
2116984 AAA_WEB_50178_549463801-2
2119511 AAA_WEB_50179_550076677-2
2122008 AAA_WEB_50180_551679428-1
2124984 AAA_WEB_50177_548026293-1
$ awk '{print $2 " " $1}' in.txt
213208850181_552222195-1
211066550177_547796499-2
215759150181_551310844-1
211737050178_549250104-1
210977750180_551512637-1
211270450179_410838823-13
211698450178_549463801-2
211951150179_550076677-2
212200850180_551679428-1
212498450177_548026293-1
$ cat /etc/issue.net
Ubuntu 14.04.4 LTS
$ gawk '{print $2 " " $1}' in.txt
213208850181_552222195-1
211066550177_547796499-2
215759150181_551310844-1
211737050178_549250104-1
210977750180_551512637-1
211270450179_410838823-13
211698450178_549463801-2
211951150179_550076677-2
212200850180_551679428-1
212498450177_548026293-1
$ gawk -W …Run Code Online (Sandbox Code Playgroud)