接上回:http://blog.csdn.net/pennyliang/archive/2010/10/21/5956302.aspx
有时候我们希望在x86平台下获得更加高的精度。如果我们想准确的知道一段程序,一个函数的执行时间,可以连续执行2次rdtsc,之间没有一行代码,来计算这两段指令执行过程会有的cycle数,不同机器可能都会有不同,和机器的性能有关系,但和负载没关系,也就是多进程,多线程情况下,连续两个rdtsc之间不会插入很多cycle,这一点大家可以做实验来验证。
start = rdtsc();
end = rdtsc();
在获得这个数据后,我们对一段代码的执行时间就可以做一个更加精确的估计。我的测试机比较一般大约是100个cycle,
用100/(3000.164*1000*1000)=0.033微秒,约合33纳秒,这个时间段几乎是不会发生什么进程切换的,因此可以认为计算的精度是可接受的。
RDTSC只在X86下有效,其余平台会有类似指令来做准确计数,RDTSC指令的精度是可以接受的,里面能插得cycle是很有限的。如果对计数要求没那么高,可以采用一些通用库函数,当然你也可以用类似的方法来考察这些库函数的精度,连续执行2次就行。
例如下面的代码得到两次rdtsc指令之间的cycle数。
#include <stdlib.h>
#include <stdio.h>
#if defined(__i386__)
static __inline__ unsigned long long rdtsc(void)
{
unsigned long long int x;
__asm__ volatile ("rdtsc" : "=A" (x));
return x;
}
#elif defined(__x86_64__)
static __inline__ unsigned long long rdtsc(void)
{
unsigned hi, lo;
__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
}
#endif
int main(void)
{
register int start = 0;
register int end = 0;
const int MAX_COUNT = 10000000;
volatile int sum = 0;
const float CPU_MHZ = 3000.164; //use cat /proc/cpuinfo get the value
const float CPU_tick_count_per_second = CPU_MHZ*1000*1000;
start = rdtsc();
end = rdtsc();
printf("sum:%d,run tick count:%d,run time:%f\n",sum,end - start,(end -start)/CPU_tick_count_per_second);
return 0;
}
分享到:
相关推荐
星火考研系列是针对准备研究生入学考试(简称考研)的学生提供的一种学习资源,其中的“巧计速计”方法是针对英语单词记忆的一种技巧性、高效的学习方法。艾宾浩斯记忆曲线则是心理学家赫尔曼·艾宾浩斯提出的理论,...
【巧计英语7000单词】是一种创新的英语词汇学习方法,旨在通过800个有趣且富有挑战性的句子帮助学习者记忆7000个英语单词。这种方法强调趣味性和实用性,使得学习过程不再枯燥乏味。这些句子涵盖了广泛的词汇,包括...
个省级行政区的名称和位置巧计PPT教案.pptx
标题“小学数学数学故事小女儿巧计救父”讲述了一个智慧与解决问题能力的故事,通过一个小学数学问题展示了逻辑思维在日常生活中如何应用。这个故事的核心是利用数学知识解决实际问题,特别是涉及到数量、交易和条件...
试听巧计10000单词,杨金明 往年的参考资料,仅共参考
2. **名词数**:确保名词的单复数形式正确。例如,"Playing with fire are dangerous." 应改为 "Playing with fire is dangerous.",因为动名词 "playing" 作主语时,谓语动词应用单数形式。 3. **非谓语动词**:...
速查巧计手册是一种便于携带和快速查找的工具书,它将大量的概念、公式、定理等信息进行分类整理,使得使用者能够迅速找到所需信息。在考研数学的复习过程中,这种手册可以大大提高复习效率,帮助考生在短时间内掌握...
标题提到的“英语谚语巧计单词700词汇任你掌握”暗示了一种通过学习英语谚语来记忆单词的方法。这种方法利用了谚语的韵律感和故事性,使单词的记忆过程变得有趣且易于接受。例如,“Anthropologists have discovered...
初中语文文摘历史苏军巧计“忽悠”希特勒
个省级行政区的名称和位置巧计.pptx
个省级行政区的名称和位置巧计学习教案.pptx
考研英语词汇巧计。20天内记住考研词汇,拥有去的故事记住考研英语单词
自己复习托福 才知道但背单词有多艰难 无论是词根式还是其他方法 这是我见到的最好的方法了 共享给大家
2. 软考中的44个过程、输入输出、工具、技术: 本资料的核心在于对软考中涉及的项目管理过程、输入输出、工具和技术进行了归纳总结。在项目管理知识体系中,通常会定义一系列的标准过程,每一个过程都有其特定的输入...
二、设巧计迁都洛阳 1. 原因: - 政治:加强对中原地区的统治,平城(今山西大同)的地理位置不利于统治全局,保守势力阻碍改革。 - 经济:平城地处边远,粮食供应困难。 - 军事:与北方游牧民族临近,存在安全...
31.下一个排列----巧计 32.(hard)最长有效括号----栈 33.搜索旋转排序数组----二分查找 34.在排序数组中查找元素的第一个和最后一个位置----二分查找 39.组合总和----回溯 42.(hard)接雨水----双指针或栈 46....
2. **设巧计迁都洛阳** - **迁都原因**:平城作为旧都,不利于改革的推进,保守势力强大,且地理位置不利于经济发展和军事防御,而洛阳作为中原的中心,更适合国家长远发展。 - **迁都过程**:孝文帝以南伐为借口...
2. 线性代数中的矩阵理论、行列式计算、线性空间和线性变换; 3. 概率论与数理统计中的随机事件、随机变量、概率分布及其数字特征; 4. 各类数学定理,如中值定理、积分定理、概率分布定理等; 5. 解题技巧和常见...
2. 文档中提到了记忆技巧和巧计法,这说明了备考过程不仅仅是对知识点的死记硬背,更多的是需要通过一些技巧和方法来帮助记忆和理解。例如,可以使用思维导图、记忆宫殿等方法将复杂的知识点串联起来,形成系统的...
2. "7、考研数学阅卷人概念·公式·定理速查巧计手册(190页).pdf":这是一份为考研准备的速查手册,涵盖了阅卷人关注的概念、公式和定理,对于快速回顾和记忆关键知识点很有帮助。 3. "28、不定积分公式大全.pdf":...