C_Sharp 板


LINE

为了获得1ms cycle time 目前使用两个方式达成 第一个方式使用Thread搭配while回圈 使用Stopwatc跟SpinWait、Thread.Sleep(1)搭配 另一个方式使用media timer(timeSetEvent) 两个方式目前都可以得到1ms cycle time 但只要有新的执行绪建立 当下会影响目前已存在的timer 这个现象据我测试强制GC也会 但不同的电脑受到影响的程度不一 我目前使用Acer VN7就很容易受到影响 公司的工业电脑影响程度较低 但也还没达到稳定程度 提高程式即时性也没什麽用 还有什麽招可试吗? 感谢 目前已参考网路文章标题如下 KB-测试Thread.Sleep的精确度 KB-Thread.Sleep, 别赖床! Timer surprises, and how to avoid them Priority-induced starvation: Why Sleep(1) is better than Sleep(0) and the Windows balance set manager --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.41.244.219
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1464407249.A.F24.html
1F:→ m339606: 程式的方式不可能有准确的计时,CPU的时脉等等都有影响 05/28 13:09
2F:→ m339606: 例如我的case是每一秒都要tick,但是一定会有0~100ms的误 05/28 13:10
3F:→ m339606: 差,与CPU时脉还有负载有关 05/28 13:10
4F:→ m339606: 1ms计时的误差会更严重,建议要精准的话走电路设计触发会 05/28 13:12
5F:→ m339606: 好些 05/28 13:12
6F:→ Litfal: 用while(isOk()) Thread.SpinWait(100); 精度会比Sleep高 05/28 21:47
7F:→ Litfal: 缺点是CPU占用率会比较高,而且要达到lms的精度也可能不够 05/28 21:49
8F:→ Litfal: 让执行续忙碌(空转)会让它"比较不容易"被context switch 05/28 22:16
9F:→ Litfal: 而Sleep则会主动让出控制权,就会发生switch。 05/28 22:18
10F:→ Litfal: 只要发生switch,什麽时候再轮到你是不可控的,所以计时精 05/28 22:19
11F:→ Litfal: 度高不了。 05/28 22:20
12F:→ m339606: 帮楼上补充,要看os层是不是允许你持续的吃cpu时间,否则 05/29 00:24
13F:→ m339606: 一样会被switch,如果要准确1ms真心建议往电路ㄑ比较好 05/29 00:24
14F:推 zel: Thread.sleep 不是以15ms计算吗? 05/29 03:32
15F:推 zel: 试试看拉高处理序与执行续的层级,然後锁定在单一核心执行试 05/29 03:35
16F:→ zel: 试看? 05/29 03:35
17F:推 zel: 但要完全刚好是1ms很难,毕竟(1)记数最小单位通常是1个tick i 05/29 03:40
18F:→ zel: nterval,1ms不是它的整数倍(2)执行排程的最高层级是留给wind 05/29 03:40
19F:→ zel: ows自己用 05/29 03:40
20F:推 zel: 要不就换Win Embedded,印象中有提供api,或是装RTX(要从比 05/29 03:43
21F:→ zel: 较底层开始写不是很了解,待板上高手补充) 05/29 03:43
22F:推 zel: 另外建议时间计数参考kernel的QueryPerformanceCounter 05/29 03:58
23F:→ ghostx2: Thread.Sleep能不能到1ms要看硬体能不能支援 05/29 10:33
24F:→ ghostx2: 至少我测了4台电脑都可以, 目前我回圈有再尝试用 05/29 10:35
25F:→ ghostx2: Thread加while另一个用media timer 05/29 10:35
26F:→ ghostx2: 两者都还是会受到Context Switch影响, 有时候1ms变100ms 05/29 10:36
27F:→ ghostx2: 我知道没法完全稳定到1ms,只是在找方法把这影响压到最低 05/29 10:37
28F:→ ghostx2: 另外RTX API要买SDK授权 05/29 10:40
29F:→ ghostx2: 测试了指定核心,这个也没法对抗Context Switch影响 05/29 11:03
30F:推 largesperm: 这样的需求不是应该买专业 real time 软体吗 05/29 14:08
31F:→ largesperm: INtime 这类的软体 05/29 14:08
32F:→ largesperm: 在 windows 要做到 real time 没想像中的简单啊 05/29 14:08







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP