当前位置: 首页 > news >正文

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); } /*-------------------------------------------------------------------------------------------

相关文章:

  • WPF中的音频——(2)
  • WinCE读写ini文件和xml文件的方法
  • Linux GNOME桌面使用技巧大全
  • 转:WEB页上弹消息框总汇~!
  • 解决AJAX中使用UpdatePanel后再用Response.Write();等无法弹出对话框问题
  • 用于收发电子邮件的应用类
  • 在自己网站加百度搜索框这么简单
  • ubuntu下root 密码忘记的解决方法
  • 从“芯”认识内存
  • Using LINQ in ASP.NET (1)
  • 又开始了Vmware……
  • 安装完流媒体服务器WP9Server,后发现原iis默认80端口被占用:
  • 跟小段一起学Solaris(14)---FTP服务
  • LINUX网络服务 DHCP服务
  • Cisco路由器上如何防止DDoS攻击
  • android图片蒙层
  • Angular 响应式表单 基础例子
  • ES6之路之模块详解
  • express如何解决request entity too large问题
  • Fundebug计费标准解释:事件数是如何定义的?
  • JavaScript 一些 DOM 的知识点
  • PHP 7 修改了什么呢 -- 2
  • python大佬养成计划----difflib模块
  • 缓存与缓冲
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 深度学习中的信息论知识详解
  • 写给高年级小学生看的《Bash 指南》
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • $jQuery 重写Alert样式方法
  • (ZT)一个美国文科博士的YardLife
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (二)linux使用docker容器运行mysql
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (九)One-Wire总线-DS18B20
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (顺序)容器的好伴侣 --- 容器适配器
  • (转)Oracle存储过程编写经验和优化措施
  • (转)为C# Windows服务添加安装程序
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .gitattributes 文件
  • .net framework4与其client profile版本的区别
  • .NET 反射的使用
  • .NET 设计模式初探
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .net访问oracle数据库性能问题
  • .net流程开发平台的一些难点(1)
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • @DataRedisTest测试redis从未如此丝滑