CPU tick counter

#define rdtscll(val) __asm__ __volatile__ ("rdtsc" : "=A" (val))

example

#include<stdio.h>
int i;
unsigned long e;
#define as(p) __asm__ __volatile__ (p)
#define rdtscll() as("rdtsc")
int main(void)
{
	rdtscll();
	as("movl %eax,%ecx");
	rdtscll();
	as("subl %ecx,%eax");
	as("movl %eax,e");
	printf("duration:%lld\n", e);
	return 0;
}

  

时间: 2024-12-16 10:58:12

CPU tick counter的相关文章

Performance Monitor Usage2:Peformance Counter

Performance Counter 是量化系统状态或活动的一个数值,对于不同的监控目的,需要设置不同的Performance Counter. Performance counters   are measurements of system state or activity. They can be included in the operating system or can be part of individual applications. Windows Performance

转贴---Performance Counter(包含最全的Windows计数器解释)

http://support.smartbear.com/viewarticle/55773/ 这个Article中介绍了一个新工具,TestComplete,把其中涉及到性能计数器的部分摘抄出来了.分三部分 1, Windows Performance Counters Describes counters that the test engine retrieves from applications and computers running under a Windows operati

Linux时间子系统(十四) tick broadcast framework

一.前言 在内核中,有cpuidle framework可以控制cpu的节电:当没有进程调度到该cpu上执行的时候,swapper进程粉墨登场,将该cpu会被推入到idle状态.当然CPU的idle状态有深有浅,当CPU睡的比较深入的时候,有可能会关闭本地的timer硬件.这样就会引入一个很有意思的问题:local timer将无法唤醒CPU,该cpu上的所有的software timer将无法唤醒cpu.tick broadcast framework就是用来解决这个问题的. 本文中的代码来自

Linux时间子系统(十二) periodic tick

一.tick device概念介绍 1.数据结构 在内核中,使用struct tick_device来抽象系统中的tick设备,如下: struct tick_device { struct clock_event_device *evtdev; enum tick_device_mode mode; }; 从上面的定义就可以看出:所谓tick device其实就是工作在某种模式下的clock event设备.工作模式体现在tick device的mode成员,evtdev指向了和该tick d

HUAWEI QUIDWAY NE20-8路由器CPU利用率过高

<NE20>dis cpu-usage CPU Usage Stat. Cycle: 42 (Second) CPU Usage            : 85% Max: 100% CPU Usage Stat. Time : 2020-03-31  12:12:31 CPU Usage Stat. Tick : 0x11a45(CPU Tick High) 0x58acedd4(CPU Tick Low) Actual Stat. Cycle   : 0x0(CPU Tick High)

uC/OS-II核心(Os_core)块

/***********************************************************************************************************                                                uC/OS-II*                                          The Real-Time Kernel*                      

嵌入式实时操作系统μCOS原理与实践任务控制与时间的解析

/***********************************************************************************************************                                                uC/OS-II*                                          The Real-Time Kernel  RTOS* ***************

时间管理(uC/OS-II)

一.时钟节拍 uC/OS-II需要提供周期性信号源,用于实现时间延迟和确认超时.时钟节拍率越高,系统的额外负荷就越重.时钟节拍的实际频率取决于应用程序的精度.时钟节拍可以是专门的硬件定时器,也可以是来自50/60Hz交流电源信号. 注意:必须在多任务系统启动以后,即在调用OSStart()之后,再开启时钟节拍器.调用OSStart()之后应做的第一件事就是初始化定时器中断.通常容易犯的错误是将允许时钟节拍中断放在系统初始化函数OSInit()之后,在启动多任务OSStart()之前. uC/OS

uCos的多任务实现

uCos的多任务实现 作为操作系统(OS),最基本的一项服务就是提供多线程,在实时操作系统uCos里,多线程被称为多任务(Task).多任务并不是CPU能真正同时运行多个程序,实际是靠CPU在多个任务之间转换切换实现的,CPU轮番的服务于一系列的任务,这样CPU在宏观上好像在同时执行多个任务,实际在微观上CPU绝对是“单任务”的.这里要注意区别多线程和多核,如果系统里是有多个CPU,则可以实现真正的多线程了. 按照上面的思路,多任务的实现,就是要实现CPU在不同的任务之间切换.按照uCos作者的