任何编译VBScript的经验?

任何编译VBScript的经验?

问题描述:

我有一个家纺2000行VBScript脚本,随着我添加的每个额外的代码已经变得越来越慢。它被创建为一个私人调试助手,现在它变得非常有用。我想打磨它,并将其与我们的产品一起运送。任何编译VBScript的经验?

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

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

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

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

有可能更多的慢,而不仅仅是它被解释的事实。你可以通过各种优化来加快速度。试着找出哪些代码部分最慢,并尽量加快速度。

取决于VB6的代码可以很好。如果它会处理自然文本/文件名,那么使用VB.net会更好,因为VB6不支持Unicode。

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

如果不知道更多的程序在做什么或者处理了多少数据,这很难说。

我同意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 

干杯

嗯...有一些 “好” BASIC编译器在那里:

是那些马上想到。在mindteq网站上列出了很多。 (Jabaco特别有趣 - VB6用Java重新表达,我已经摆弄它了,它看起来非常有前途!)

但回到VBScript编译器,他们确实存在..排序。他们所做的是对代码进行标记并在其周围放置一些包装。他们是否跑得更快是没有意义的。

+0

BCX会让您嵌入一定的VBScript命令,然后就可以编译。 – bgmCoder 2012-04-29 04:17:57