acad 速度迷破除迷信篇
本帖最后由 你有种再说一遍 于 2024-11-23 04:19 编辑某些群友总觉得Acad越升级是越快,
为了破除迷信,看官方博客最新技术流才行.
你猜为什么高版本acad.exe旁边有web的dll和QT的dll?
官方博客有大量的OEM版本开发,别人为了营收已经通过云服务进行的订阅式收费和加速了,例如多个PDF导出不需要下载DWG再进行,而是直接导出之后下载PDF.
一切都在Web化.(天正图元怎么办呢)
https://aps.autodesk.com/developer/overview/autocad-oem
(末尾还有kean博客和Adn的内容)
而传统版本Acad再重构的过程中加入了web,
也就是Application里面有个core接口的,
怎么core就少了一些系统API呢?也就是这个原因了.
不会有人专门写OEM程序吧,你特喵破解的还干这傻事.
给我把"Acap"改回来.
Acad是大集成: COM/C#/VBA/Lisp/C++
其中VBA还在DWG上面留了字段,让它读取时候自动分析.
砍不掉的东西非常多.
那acad25怎么就加速了呢?
多线程?SIMD?显卡硬件加速?
都不是.
但凡写过一天多线程的人都知道,锁机制要控制好真的麻烦.
所以我们用PLinq等工具降低成本.
直到acad25才有net8.0的nativeAOT冷启动,
但是冷启动只是加速了一点net而已,
C++也有运行时,QT也有,Web还有V8,
它们需要初始化和等线程同步,尤其是web还要检查发行商,三次握手.
不要觉得C++有零成本抽象就觉得没有runtime了...
AOT编译并不会运行快,只是启动快,成也特化败也特化...
这一切都是拖累速度的关键.
acad越做越大,越做越可怕.
而C#调试需要多次启动cad,这个非常关键,这就是为什么选择acad08,因为它没有上面乱七八糟的事情.
调试单例模式你需不需要重启?需要吧.
调试等待界面嵌入需不需要重启?需要吧.
调试非必显BUG需不需要重启?需要吧.
非常多的重启cad的时候.
文字看不见还要托管模式等待文字线程附着,都是限制加速的原因.
而令人奇怪的是,高版本cad在调试ARX居然可以非常快.
(而且貌似没有文字线程问题)
以上那么多问题,不是设置什么硬件加速可以解决的,
硬件加速只是利用零拷贝技术把拷贝数据到显卡运算,然后输出到显示器.
连并行任务都封杀你的Acad怎么可能给你加速呢?
留个作业:
猜猜为什么并行块表之后不能重置迭代器?
鉴于大家不太喜欢写demo,我写好了.
https://www.cnblogs.com/JJBox/p/12489648.html#_lab2_1_0 大佬真牛
页:
[1]