首页 /编程语言和算法/VB6/ASP
 VB6 P-代码和本机代码有什么区别?以及和C++的exe比较
2023年11月26日 22:59

P-Code,预编译代码。也就是解释执行的代码。不要小看解释执行,其实速度并不慢,而且对于数据库程序反而快(微软在MSDN中说的),似乎是VB的解释机对ADO,DAO做了优化。


LocalCode,本机代码。真正的EXE文件。对于注重算法的程序建议使用LocalCode编译,速度比较快。建议选这个!


编译”选项卡”(“工程属性”对话框)

该选项卡设置工程编译时的条件。

选项卡选项

“编译为 P-代码”

用 p 代码来编译工程。存储在 .vbp 文件中的设置值将被覆盖掉。

“编译为本机代码”

用带有选定最优化的原码来编译工程。存储在 .vbp 文件中的设置值将被覆盖掉。

“快速代码优化”- 通过指示编译器在速度和大小之间首选速度,使 .exe 和 .dll 文件的速度最快。编译器可以减少许多功能上跟机器码序列相同的构造。在某些情况下,这种不同提供了用大小来换取速度的权衡交换。

“小代码优化”- 通过指示编译器在速度和大小之间首选大小,来使 .exe 和 .dll 文件最小。编译器可以减少许多功能上跟机器码序列相同的构造。如果不选中这个选项,代码可能就会大一些,但是速度会更快一些。

“非优化”- 无优化地编译。

“流行的 Pentium Pro™”- 优化所创建的代码,优化方向是使之更有利于 Pentium Pro™ 处理器来处理。如果在程序中使用了这个选项,则意味着仅仅是为 Pentium Pro™ 处理器所创建的代码。用此选项产生的代码仍然可以在更早期的处理器上运行,但是工作起来性能不是那么好。

“创建符号化调试信息”- 在可执行文件或者 DLL 文件中产生符号调试信息。用此选项创建的可执行文件可以用 Visual C++ 或者具有 CodeView 风格调试信息的调试器来调试。设置这个选项将为可执行文件产生一个带有符号信息的 .pdb 文件。
“高级优化”

显示“高级优化”对话框。

“DLL 数据地址”

给程序设置一个基地址,从而覆盖 .dll 文件的缺省位置(在 0 X 10,000,000 处)。操作系统首先试图在指定的或者缺省的位置加载一个程序。如果没有足够空间,那么系统将重新定位该程序。


问:VB6代码是生成的p代码,比c++生成的exe慢吗?

答:VB6 生成的 P-Code(解释执行的代码)相对于直接生成的机器码(如 C++ 生成的可执行文件)在执行速度上通常要慢一些。

VB6 中的 P-Code 是一种中间代码形式,需要在运行时由解释器逐行解释执行。相比之下,C++ 编译器将源代码直接编译成机器码,可以直接由计算机处理。

因此,由于 VB6 代码需要在解释器的支持下运行,从执行开始到最终结果的输出过程可能相对较慢。相比之下,C++ 生成的直接可执行文件可以更迅速地执行。

不过,虽然 VB6 的 P-Code 通常比机器码执行速度慢一些,但在实际应用中,性能差异可能并不明显,特别是对于一些简单的任务或者 I/O 密集型任务。

此外,VB6 的优势在于开发速度快、易于学习和使用,以及可视化界面设计的便利性。因此,在项目需求和性能方面的权衡考虑下,需要综合评估选择合适的开发语言。

总之,VB6 生成的 P-Code 相对于 C++ 生成的可执行文件在执行速度上可能要慢一些。然而,实际结果取决于具体的代码和应用场景。如有需要,请根据具体情况进行测试和评估。


问:VB6代码是生成的本地代码,比c++生成的exe慢吗?

答:如果您的 VB6 代码是生成的本地代码(Native Code),而不是 P-Code(解释执行的代码),那么与 C++ 生成的可执行文件相比,它们在执行速度上可能有较小的差异。

生成的本地代码是直接编译成机器码,类似于 C++ 生成的可执行文件,可以直接由计算机处理,不需要解释器逐行解释执行。因此,本地代码通常会比 P-Code 更快,接近于直接生成的机器码。

在某些情况下,经过适当优化的 VB6 本地代码执行速度可能与 C++ 生成的可执行文件执行速度相当。然而,通常情况下,由于 VB6 的一些设计和限制,以及编译器的优化水平等因素,C++ 生成的可执行文件仍然可能略有优势。

需要强调的是,在具体的应用场景和代码实现中,性能差异可能因编写的代码和所进行的操作而异。因此,在需要关注性能的情况下,最好针对具体情况进行测试和评估,以确定哪种语言更适合您的需求。

综上所述,如果您的 VB6 代码是生成的本地代码,与 C++ 生成的可执行文件相比,它们在执行速度上可能有较小的差异,具体表现取决于实际情况。

 
全部回复(0)
首页 | 电脑版 |