如果拥有 Visual Basic 的专业版或企业版,既可以将代码编译成标准的 Visual Basic 伪代码格式,也可以编译成本机代码格式。本机代码编译提供了伪代码编译所没有的关于优化和调试的几个选项。P-code 或伪代码,是介于 Basic 程序中的高级指令和计算机处理器执行的低级本机代码之间的一种中间步骤。在运行时刻,Visual Basic 将每一句伪代码转换成本机代码。如果将程序直接编译成本机代码,则取消了伪代码这一中间步骤。可以使用象在 Visual C++ 中提供的调试环境之类的标准的本机代码调试工具来调试编译后的本机代码。也可以使用例如在 Visual C++ 的语言中提供的优化和调试本机代码的选项。例如,可以根据代码运行速度和大小优化代码。注意   所有用 Visual Basic 创建的工程都使用运行时 DLL (MSVBVM60.DLL) 服务。在 DLL 所提供的服务当中有您应用程序的启动和关闭代码、窗体和内部控件的功能,以及像 Format 和 CLng 的运行时函数。用“本机代码”选项来编译工程意味着您写的代码将完整地编译为处理器芯片的本地指令,而不是编译为p-code。这将大大加速循环和数学计算,并可以加速对 MSVBVM60.DLL提供的服务程序的调用。然而,这并不能减少对 DLL 的需要。

解决方案 »

  1.   

    编译型和解释型应用程序的比较 
    按照缺省规定,Visual Basic 将应用程序编译成可运行的解释型或 P-code 程序。运行时,动态链接库 (DLL) 将翻译或解释执行程序中的指令。Visual Basic 专业版和企业版还可将程序编译成 .exe 本机代码。在许多情况中,运行本机代码比运行解释型代码本质上要快得多。但事情并非总是这样。以下是一些有关本机代码编译的一般指南: 若代码做了大量固定类型的、非字符串变量的基本操作,则其产生的本机代码将与编译的 P-code 操作码产生最大的反差。然而,对于复杂的经济计算或生成分形图形,用本机代码有很多好处。
    计算密集型程序,或在局部数据结构中处理大量的位和字节操作的程序,用本机代码就可获得明显的好处。
    在许多程序中,特别是那些含有大量 Windows API 调用,COM 方法调用和字符串操作的程序,本机代码不比 P-code 快多少。
    如果应用程序主要含有来自 Visual Basic for Applications 运行库的函数,那么就看不到多少本机代码的好处,这是因为 Visual Basic for Applications 运行库已经高度优化了。
    含有大量子例程调用而非内嵌过程的代码,用本机代码也似乎不太快。这是因为设置栈结构,初始化变量,返回时的清除等工作,用 P-code 引擎和用本机代码所花费的时间相同。 
    注意,调用一次对象、DLL 或 Visual Basic for Applications 运行函数,都会消弱本机代码性能上的优点。这是因为执行代码所花时间相对地少,而大量时间(常常达到 90-95%)花在窗体、数据对象、Windows DLL,或 Visual Basic for Applications 运行库,以及处理内部字符串和变量上。实际测试中,典型情况是客户应用程序总的执行时间有 5% 用于执行 P-code。因此,如果本机代码是瞬时执行的,则在这些程序中用本机代码也只能改进性能最高达 5%。本机代码的目的是可让程序员用 Basic 编写一小片代码或有大量计算的算法。这些,由于性能问题,在以前是决不可能的。使用这些运行非常快的“小片”,也能改善应用程序特定部分的响应,从而改进了整个应用程序的感觉性能。