LinxVIEW论坛-斯科道

 找回密码
 立即注册
查看: 10279|回复: 2
打印 上一主题 下一主题

状态机与事件结构结合参考体悟

[复制链接]

537

主题

750

帖子

2617

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2617
跳转到指定楼层
楼主
发表于 2021-11-24 16:45:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
如图所示,原文链接,给了诸多信息提示,这技巧确实不愧为LabVIEW冠军!


回复

使用道具 举报

537

主题

750

帖子

2617

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2617
沙发
 楼主| 发表于 2021-11-24 17:11:14 | 只看该作者
本帖最后由 Scadao 于 2021-11-24 17:28 编辑

行业格言:
属性节点是同步的,强制进行线程切换,因此成本很高。

大量的属性节点只能在 UI 线程中运行。整个操作系统只有 1 个 UI 线程,因此可能有很多进程在争夺它。因此,您可能必须等待执行。此外,在 UI 线程中运行所有内容会限制/停止并行化。
LabVIEW冠军回言:

UI 是为用户服务的,而不是为数据服务的。在LabVIEW中,“线是变量”(简化)。


干净的程序设计很少使用局部变量。始终可以直接连接到终端,您只需要发挥创意,不要将它们隐藏在结构堆的深处。(我上面的例子没有!)。保持和更新移位寄存器中的重要值,并在顶层图循环上读写终端


写入终端或终端的局部变量只会更新传输缓冲区(非常有效!)并且 UI 线程偶尔会更新指标(您的眼睛看不到每秒一百万次更新,因为屏幕刷新率是慢得多,UI 线程不需要执行得比这更快)。如果使用相同的代码并通过值属性节点更新值,则每次写入都需要切换到 UI 线程,更新值,并切换回普通线程进行下一次迭代。这要贵几个数量级!(顺便说一句,您可以将终端切换到“右键单击...高级...同步显示”。然后写入终端将停止数据流,直到前面板更新,给您类似的性能影响与 value 属性一样,所以不要这样做!!)。 当然,在这个演示中,甚至不将终端放在循环中会更合理。


回复 支持 反对

使用道具 举报

537

主题

750

帖子

2617

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2617
板凳
 楼主| 发表于 2021-11-24 17:34:58 | 只看该作者
LabVIEW冠军再次优化楼上图——

回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|SCADAO  

GMT+8, 2024-11-22 20:00 , Processed in 0.046071 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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