Bill Tillman 发表于 2022-7-6 06:22:04

标杆管理

在我为客户开发的项目中,我使用VB。NET来填充Excel文件,然后从中读取一些保存在文本文件中的数据。VB。NET程序然后释放AutoCAD和一个LISP程序,该程序读取此文本文件并准备图形。
 
这里的IT经理说,他希望我停止使用VB编程。说明安全风险等。。。好的,很酷,所以我回到了我最初严格使用LISP使用GetExcel模块所做的事情。我发现它可以这样工作,但看起来相当慢。我今天用它测试了一些东西,发现它不仅速度较慢,而且一旦我填充了文件Sheet1上的单元格,就必须保存它,以便可以重新打开它,以便提取文件Sheet2上计算的值。我还发现,只需输入数据、读取计算结果,然后设置以准备绘图的步骤,所需的时间与VB相同。NET方法需要完全完成,这包括通过互联网发送网络流,让用户知道他们的绘图已经准备好。
 
VLISP似乎是一个很好的工具,但它总是这么慢吗?和VB。NET无需保存、关闭然后重新打开Excel文件。我可以在Excel的一个实例中做任何事情,包括从多个工作表中读取数据。

BlackBox 发表于 2022-7-6 07:50:30

对不幸的是,LISP(ActiveX COM)比托管代码(.NET API)慢得多。我找不到说明每个API之间差异的图形,我想说这是我参加的AU开发者课程的一部分,只是不记得我参加的200多个AU课程中的哪一个。
 
在任何情况下,你似乎被降级到少数几个选择之一。。。
 
[列表=1]
[*]管理层可以通过使用带有外部对象的本机ActiveX COM API执行纯Visual LISP来降低性能
 
[*]您可以说服他们允许托管代码(即VB、C#、F#等,这些代码可能已经失败,或者您不会发布这些代码)。
 
[*]您可以自己编写自定义LispFunction方法,该方法仅公开您工作所需的托管API功能,并在会话开始时NETLOAD生成的程序集,因此每个程序集仅使用LISP,但通过自定义LispFunction方法获得了大量性能。
[/列表]
页: [1]
查看完整版本: 标杆管理