开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3881|回复: 418
收起左侧

[易语言纯源码] [汇编]纳秒级高精度计时/微秒延时v2.0(终版)

    [复制链接]
回帖奖励 9 枚 精币 回复本帖可获得 1 枚 精币奖励! 每人限 1 次(中奖概率 50 %)
结帖率:100% (3/3)
发表于 2026-1-21 19:37:05 | 显示全部楼层 |阅读模式   重庆市重庆市
分享源码
界面截图: -
是否带模块: 纯源码
备注说明: -
本帖最后由 z573277679 于 2026-1-21 20:01 编辑

之前的版本虽然使用了汇编 RDTSC 进行计时,但旧版本纯粹的死循环空转会导致 CPU 单核占用率提升。本次更新重构了底层逻辑,引入 Windows QPC 硬件时钟进行频率校准,懒启动更快,并实现了“大延时自动 Sleep,小延时汇编空转”的混合策略。既不丢精度,也不长时间占用CPU。此版更新后【纳秒级高精度计时/微秒延时】 已是完美答案。


新版改进:
        1. 使用 Windows 高精度性能计数器 (QPC) 作为基准,对 RDTSC 进行纳秒级校准。这是目前应用层获取 CPU 频率最精准的方案。
        2. > 10ms 的延时:自动调用 Sleep 释放 CPU 时间片,仅保留最后 5ms 进入汇编级高精度空转。
           < 10ms 的延时:直接进入高精度空转,确保微秒级准确度。
           效果:既保证了纳秒级精度,又极大地降低了 CPU 占用率。
        3. Asm_高精度延时 参数改为 双精度小数型。想延时 0.05 毫秒直接写 Asm_高精度延时(0.05)。想延时 1.5 毫秒直接写 Asm_高精度延时(1.5)。此改进为了符合使用习惯。

温馨提示:如果你对第一次 Asm_高精度延时()的精度极其敏感,只需要程序加载时候调用一次 Asm_高精度延时(0.01)就相当于初始化了。其他情况直接写在代码中懒加载即可。Asm_高精度延时的精度在微秒级,取启动时间Ex的精度则在纳秒级。

精度实测:
* “[测试 0.05ms] 实际:0.05085465312004 ms  误差:0.0008546531200409 ms”
* “[测试 10.50ms] 实际:10.50095385313 ms  误差:0.0009538531303406 ms”
* “[测试 500.00ms] 实际:500.0007921532 ms  误差:0.0007921531796455 ms”

游客,如果您要查看本帖隐藏内容请回复




点评

感谢分享,很给力!~   广东省广州市  发表于 2026-1-28 11:11
代码使用的是栈内存和寄存器,完全没有动态申请堆内存,所有从物理机制上就不存在内存泄漏的可能性......   重庆市重庆市  发表于 2026-1-22 22:25
多线程跑了一天 程序占用内存 明显增加极大, 比较以往的内存占用大了一倍多 但是精度确实可以   浙江省杭州市  发表于 2026-1-22 21:53
我大重庆的男儿还是吊的   重庆市重庆市  发表于 2026-1-22 01:16
楼主还是我重庆老乡啊   北京市北京市  发表于 2026-1-22 00:03
无广告,无群的,希望大家能够给个好评吧,让我升级快点   重庆市重庆市  发表于 2026-1-21 20:37

评分

参与人数 23好评 +15 精币 +31 收起 理由
辽阳小哲 + 1 + 2 支持开源~!感谢分享
chuanqibuding + 1 感谢分享!
弑神1990 + 1 + 2 感谢分享,很给力!~
なす随风ぬね + 1 + 1 支持开源~!感谢分享
quary + 1 + 2 感谢分享,很给力!~
xhping + 1 感谢分享,很给力!~
远古石桥 + 1 YYDS~!
zjbin1989 + 1 感谢分享,很给力!~
ACE丶蓝雨 + 1 + 2 感谢分享,很给力!~
kanhaiyouyue + 1 + 1 支持开源~!感谢分享
Mc欢子 + 1 + 2 感谢分享,很给力!~
by626 + 1 感谢发布原创作品,精易因你更精彩!
cbl521ysys + 1 感谢分享,很给力!~
恒大大 + 1 感谢分享,很给力!~
文西哥 + 1 感谢分享,很给力!~
szxiao + 1 + 2 支持开源~!感谢分享
风雨3137 + 1 感谢分享,很给力!~
媞鱫s㈣妳 + 1 + 2 支持开源~!感谢分享
cui870222829 + 1 感谢分享,很给力!~
昕乐 + 1 支持开源~!感谢分享
陈大奶么么哒 + 1 + 2 感谢分享,很给力!~
小桥流水34 + 1 + 3 开源精神必须支持~
Mr轮子 + 1 + 2 开源精神必须支持~

查看全部评分


本帖被以下淘专辑推荐:

签到天数: 1 天

发表于 1 小时前 | 显示全部楼层   贵州省贵阳市

回帖奖励 +1 枚 精币

感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 5 天

发表于 3 小时前 | 显示全部楼层   广西壮族自治区来宾市
        支持开源~!感谢分享
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 昨天 17:18 | 显示全部楼层   北京市北京市
我去礼盒666666666666
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 昨天 11:09 | 显示全部楼层   广西壮族自治区钦州市
45555555555555555555
回复 支持 反对

使用道具 举报

结帖率:25% (1/4)

签到天数: 4 天

发表于 昨天 10:10 | 显示全部楼层   四川省泸州市

回帖奖励 +1 枚 精币

#在这里快速回复#如果你对第一次 Asm_高精度延时()的精度极其敏感,
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)

签到天数: 1 天

发表于 昨天 03:40 | 显示全部楼层   湖南省郴州市
支持开源~!!!感谢分享
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 昨天 03:03 | 显示全部楼层   江苏省无锡市

回帖奖励 +1 枚 精币

感谢分享
回复 支持 反对

使用道具 举报

结帖率:93% (197/212)

签到天数: 3 天

发表于 昨天 02:35 | 显示全部楼层   福建省泉州市

回帖奖励 +1 枚 精币

感谢发布原创作品,精易因你更精彩!
回复 支持 反对

使用道具 举报

结帖率:56% (10/18)

签到天数: 4 天

发表于 前天 22:30 | 显示全部楼层   山东省青岛市
666666666666666
回复 支持 反对

使用道具 举报

结帖率:93% (87/94)

签到天数: 4 天

发表于 前天 22:19 | 显示全部楼层   广西壮族自治区玉林市
研究研究研究
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表