【问题标题】:Any experience with compiling VBScript?有编译 VBScript 的经验吗?
【发布时间】:2008-09-28 05:27:10
【问题描述】:

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

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

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

【问题讨论】:

    标签: performance winapi optimization compiler-construction vbscript


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

        • BCX 会让你嵌入某些 vbscript 命令,然后你就可以编译它了。
        【解决方案4】:

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

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

        干杯

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-06
          • 1970-01-01
          • 2011-09-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多