Net 实现纳秒级别计算

1)建立VC.NET 托管类库

using namespace System;

namespace MLTimerDot

{

//得到计算机启动到现在的时钟周期

unsigned __int64 GetCycleCount(void)

{

_asm _emit 0x0F

_asm _emit 0x31

}

//声明 .NET 类

public __gc class MLTimer

{

protected:

UInt64 m_startcycle;

UInt64 m_overhead;

public:

MLTimer(void)

{

//为了计算更精确取得调用一个 GetCycleCount() 的时钟周期

m_overhead=0;

Start();

m_overhead=Stop();

}

//计算停止

UInt64 Stop(void)

{

return GetCycleCount()-m_startcycle-m_overhead;

}

//计算开始

void Start(void)

{

m_startcycle=GetCycleCount();

}

__property virtual UInt64 get_Overhead()

{

return m_overhead;

}

};

}

2)测试代码

//C# 引用后放一个Button 测试

private void button1_Click(object sender, System.EventArgs e)

{

MLTimerDot.MLTimer timer=new MLTimerDot.MLTimer();

timer.Start();

Thread.Sleep(1000);

UInt64 cpuspeed10=(ulong)(timer.Stop()/100000); //通过这个可以算出 CPU 的mhz

timer.Start();//开始

//测试代码(测试声明一个DataTable 用的时间)

DataTable td= new DataTable();

UInt64 time1=timer.Stop();//停止

String s= String.Format("CPU {0}.{1} mhz\n声明 MLTimer 类的系统开销 {2:n} 时钟周期\n本操作系统开销 {3:n} 个时钟周期\n使用 {4:n} ns",

cpuspeed10/10,cpuspeed10%10,timer.Overhead,

time1,

time1*10000/cpuspeed10);

MessageBox.Show(s);

}

/*-------------------------------------------------------------------------------------------

时间: 2024-07-28 21:59:10

Net 实现纳秒级别计算的相关文章

nanosleep纳秒级延迟

//函数原型 int nanosleep(struct timespec *req, struct timespec *rem) //参数列表: // req:要求的睡眠时间 // rem:剩余的睡眠时间 //返回值: // 0:成功:-1,失败,errno保存错误代码 //目的:纳秒级别的延迟 int nano_delay(long delay) { struct timespec req, rem; long nano_delay = delay; int ret = 0; while(na

标准-请懂计算机的帮忙估算一下,我鼠标连续移动一秒,计算机要花费多少时间在鼠标移动这一事件的处理上

问题描述 请懂计算机的帮忙估算一下,我鼠标连续移动一秒,计算机要花费多少时间在鼠标移动这一事件的处理上 以市面上普通正常的计算机标准大概估算一下就行了,只要误差在一个数量级以内,一直觉得计算很快,但是不知道到底有多快,学编程,书里有句话说:"不要以为你连续移动鼠标,电脑就处于忙碌状态,它依然有很多的空闲时间,所以我才有此一问" 解决方案 鼠标晃晃还是需要消耗一些资源的,因为窗口上很多控件都需要判断自身是否需要响应鼠标滑过的消息,以及处理显示.你可以打开任务管理器,切换到性能标签, 晃动

objective c获取当前纳秒级时间

问题描述 objective c获取当前纳秒级时间 求助: objective c 获取当前纳秒级时间 有更好的思路也可以 真心感谢 解决方案 顶多api支持到毫秒,我猜测是不是可以获取到一个毫秒的等级,完后随机一个1-1000的值作为纳秒的单位? 解决方案二: 你知道什么叫纳秒级么? 纳秒就是1E-9秒.一颗1GHz的处理器,运行一条指令就要1纳秒(假设一个时钟执行一条指令的话). 你说什么方法可以在1条指令内得到时间?除非处理器有直接得到时间的指令. 不过x86处理器的确有一个RDTSC指令

能在50秒内计算出201位数的23次方根

比计算机还快10秒.夏琨塔拉·戴维(Shakuntala Devi),被誉为"人脑计算机"和"印度数学女巫",因其不可思议的计算能力而列入1982年版的<吉尼斯世界纪录>.她最惊人的表演是她在美国一大学创下的,当时夏琨塔拉在50秒内心算出一个201位数的23次方根,而用来验证结果的计算机还花了1分钟.13000条指令才完成任务.夏琨塔拉1939年生于印度,她的父亲曾做过祭司,后转行马戏团从事空中飞人.驯兽师.走钢丝等表演.夏琨塔拉三岁时,她的父亲教她玩扑

谷歌准备空中交通控制系统 1秒内计算飞行路径

据Engadget报道,谷歌母公司Alphabet正准备推出一个针对无人机控制交通控制的项目Project Wing.Project Wing的空中交通管理平台系统可以为无人机提供导航服务,避免与建筑物.飞禽和个人相撞. 谷歌无人机团队官方称,这套系统可以同时管控多架无人机飞行路径,同时自动调整3架包裹递送无人机的飞行路径.这套系统需要谷歌地图.谷歌地球.谷歌街景等产品的共同支持. 谷歌的愿景是让该系统利用谷歌云计算的强大能力,可以在1秒内帮助无人机计算出所有飞行路径,并实时进行调整.谷歌"称霸

阿里内核月报2014年7月-8月

Capsicum for Linux Capsicum: 一种基于文件句柄的新安全模型 Capsicum是一种源自FreeBSD的安全模型,与Linux下众多LSM的相同之处在于它们都是基于权限管理的,而不同之处在于LSM针对的操作对象非常丰富,有进程.VMA.端口.带有标签的文件等等,而Capsicum操作的对象非常单一:文件句柄.例如,一个fd必须带有CAP_READ才能被读取,必须带有CAP_SEEK才能被lseek(),必须带有CAP_MMAP_W才能被mmap()建立可写映射,针对io

java 关于类似售票系统的多线程并发 的问题

问题描述 java 关于类似售票系统的多线程并发 的问题 本人对多进程和多线程不大了解,还请各位高手解答下,先谢了.问题如下: 1.多线程的并发,我查了下资料,一般解释的是:一个进程可以包含多个线程,一个线程完成一个功能,这样,进程执行的时候,它包含的多个线程可以看成同时执行. 那多线程的并发,可不可以有另外的理解:如果这时的某个进程只有一个线程,那么,同时有多个类似的进程同时启动,这时是不是就产生了多个进程下要同时完成相同任务的多个线程,这算不算多线程的并发? 下面拿售票系统举例说明下, 2.

阿里内核月报2015年03月

Virtual filesystem layer changes, past and future LSF/MM 2015峰会上,虚拟文件系统也吸引了足够的目光.LSF/MM 2015峰会上,虚拟文件系统也吸引了足够的目光. 首先是一些需要继续期待的变化.一个是替代mount()系统调用的工作,Al做了一些但是还没能发出来review.另一个是revoke()系统调用,也只有框架. 进展比较大的是iov_iter接口的转变,Al计划到4.1版本完成aio_read()和aio_write()里面

Java 8新特性

编者注:Java 8已经公布有一段时间了,种种迹象表明Java 8是一个有重大改变的发行版.在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8--lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Java 8中抽象类与接口的比较. 我们也在其他地方引用了15个必读的Java 8教程.当然,我们也探究了Java 8的一些不足之处,比如Java 8的"黑暗面". 现在,是时候把所有Java 8的重要