1

我有一个自制的 2000 行 VBScript 脚本,随着我添加的每个附加代码,它变得越来越慢。它是作为私人调试辅助工具创建的,现在它已经变得非常有用。我想打磨它并与我们的产品一起发货。

我想我可以通过编译它并使其成为 EXE 来加速它。此外,我希望我的工具有一个用户界面,一旦我使用编译平台可能给我的额外库,这可能是可能的。我还在考虑通过调用Win32函数来扩展脚本,以实现我需要的任何缺失功能。

我有 VB 6.0 或者我可以购买外部编译器。但我还需要创建的程序(而不是编译器本身)在 Windows Vista 中运行良好。我最好的选择是什么?

4

4 回答 4

4

我建议下载 Visual Basic Express Edition ( http://www.microsoft.com/express/vb/ ) 并将您的工具移植到 VB.Net。但是,这种方法有一个缺点 - 您的程序将依赖于 .Net。在大多数情况下,这不应该是一个大问题,因为现在大多数机器都应该有 .Net 2.0,但最好记住它。

我会远离 VB6.0;但是,除了 VB.Net,我不知道您可以使用任何其他好的基本编译器。

于 2008-09-28T05:31:16.173 回答
4

缓慢的原因可能不仅仅是它正在被解释的事实。您可能可以对其进行各种优化以使其更快。尝试找出代码的哪些部分减慢它的速度并尝试加快它们的速度。

根据代码的作用,VB6 可能会很好。如果要处理自然文本/文件名,那么最好使用 VB.net,因为 VB6 不能很好地支持 Unicode。

但我感觉即使编译后,它仍然可能很慢,因为编译只会让它运行得更快,而不是更高效。

于 2008-09-28T05:36:20.560 回答
3

嗯......那里有许多“好的” BASIC 编译器:

是那些立即浮现在脑海中的。mindteq网站上列出了很多。(Jabaco 特别有趣 - VB6 用 Ja​​va 重新表达。我已经摆弄过它,它看起来很有前途!)

但是回到 VBScript 编译器,它们确实存在……有点。他们所做的是将代码标记化并在它们周围放置某种包装器。他们是否跑得更快是没有实际意义的。

于 2009-06-04T04:30:27.557 回答
0

如果不了解程序正在做什么或正在处理多少数据,就很难说。

我同意 Franci - VB6 不再销售或支持,因此 VB.Net 将成为编译代码的方式。(Express 是免费的。)VBScript 与 VB.Net 不太相似,因此移植可能是一项不错的工作,除非它是所有 WMI 或 LDAP 查询或类似的东西。

我会开始计时,看看你的瓶颈在哪里。除非您正在执行大量循环和多级函数调用,否则您可能会陷入外部调用。

wscript.echo "Begin: " & Time
tStartTime = Timer
'... do stuff ...
tStopTime = Timer
wscript.echo "Elapsed time: " & tStopTime - tStartTime

干杯

于 2009-03-13T08:16:10.317 回答