许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Altium Designer多进程程序调度机制原理分析及性能优化方法

Altium Designer多进程程序调度机制原理分析及性能优化方法

阅读数 2
点赞 0
article_banner


刚在敷铜的时候卡死了,任务管理器里Altium Designer进程CPU占着100%,内存跑到12G,等了几分钟才缓过来,查了一下发现是多线程调度里有个重绘队列堆积的问题,顺便把整个调度机制捋了一遍。

Altium Designer的底层是典型的Client-Server架构,Client模块负责解析用户操作并把它翻译成一个“进程”,然后把这个进程委派给对应的Server去执行。进程标识符用“服务器名:进程名”的格式,比如Sch:ZoomIn是原理图编辑器提供的放大进程,PCB:PlaceVia是PCB编辑器提供的放via进程。每个文档上可以叠多层进程,每启动一个进程深度加一,执行完深度减一,深度为零才算空闲,这个深度管理由IProcessControl接口控制。

AD18之后切到64位架构,多线程才真正用起来。多线程用在那些可以并行计算的任务上,比如铺铜、Gerber生成、DRC检查、项目编译、网络构建,这些不需要按顺序算的东西,AD会把它们拆到不同核心上跑。但布线、拖拽这种交互式操作还是单线程的,你拖一个器件的时候AD只用一个核心,所以拖大器件还是卡。铺铜铺一个GND多边形,AD会把多边形拆成多个区域并行填充,多核CPU在这里吃满才有效果。

DRC检查的并行化有个坑,Online DRC开着的时候每走一根线都触发一次规则检查,多线程频繁创建销毁反而拖慢响应。实际有效的做法是在走线阶段把Online DRC切到All Off,走完一个模块再手动跑一次Batch DRC,批量检查比在线检查快很多,而且不会在走线过程中卡顿。同理,大型工程编译的时候AD会并行处理多个文档的编译,内存不够的话反而会触发频繁的GC,16G是底线,32G才舒服。

Polygon Pour Repour All那个UI冻结的问题,任务管理器里AD进程CPU占100%,其实是重绘间隔设太密了。默认50ms重绘一次,高密度GND铺铜的场景改成200ms,UI响应会好很多。Preferences→PCB Editor→Display→Redraw Interval调大,铺铜的时候界面不再一卡一卡的。

Gerber生成的多线程加速效果跟设计规模相关,小设计感觉不出来,大板子几个G的Gerber数据生成时间能从十几分钟压到几分钟。ODB++导出也一样走多线程,跟Gerber共用一套并行框架。项目编译也是多线程的,原理图工程里文档多了编译时间会明显缩短,但前提是每个文档的编译互不依赖,有依赖关系的文档还是得串行处理。

内存这边,64位架构突破了32位的4G限制,但内存不是无限涨就好,AD内存占用到10G以上就开始出现卡顿了。Preferences→System→Network Activity里面把不必要的联网检查关掉,只保留Altium Portal、Data Management Server和License Server。后台的自动更新检测也关掉,AD会在空闲的时候偷偷下载更新包,占着磁盘和网络。历史备份文件夹清一下,工程目录下的History文件夹会随时间累积,大的能到几G。

脚本执行跟主进程是分开的,通过ScriptingSystem:RunScript进程启动,脚本跑在独立的线程里,主界面不卡。但脚本里如果调了COM对象去遍历设计数据库,会把主线程的数据锁住,反而卡得更厉害。批量操作的时候用DelphiScript直接操作服务器接口,不走COM,效率高一个量级。脚本可以通过进程启动器绑定到菜单或者工具栏上,走一遍绑定流程以后一键执行,不用每次File→Run Script。

硬件配置这块,16G内存打底,i7或者同等级CPU,SSD必须的,显卡要支持DirectX 11以上。多显示器对AD的多线程没影响,但3D视图打开的时候GPU渲染线程跟计算线程抢资源,3D视图不用的时候关掉能省不少CPU。电源计划改成高性能,笔记本上省电模式会把CPU频率压下来,多线程任务的加速效果直接打半折。



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空