关于P-代码和本机代码
vb吧
全部回复
仅看楼主
level 12
辛时雨 楼主
不知道以前又没有人发过这贴。。
首先,大家都知道他们是不一样的,本机代码是在本机上编译出来的代码,是对本级做了专门优化的。我们先以本机代码为代码速度优化的方式来编译,并和P代码做比较。
结论:本机代码比P代码长。。
下一部分在楼下发
2013年01月31日 11点01分 1
level 12
辛时雨 楼主
第二个结论:本机代码花两秒钟打开(两个都是空窗体)p代码刚点击就打开了。
2013年01月31日 11点01分 2
level 12
辛时雨 楼主
接着以(本机)代码大小为优化,和P代码比,结论如下:
本机代码还是比P代码长。。
本机代码打开时间3秒钟,p代码还是0秒打开
2013年01月31日 11点01分 3
是不是因为内存占用的问题,比如说p代码的优先级和本机代码不同,个人意见,还望赐教
2021年06月03日 08点06分
level 12
辛时雨 楼主
接着绘图性能:用Pset花满整个窗体:本机代码(速度优化)所花时间:93秒,本机代码(大小优化)所花时间:98秒,P代码所花时间:90.
目前看来,P代码性能稍好一些
2013年01月31日 11点01分 4
level 12
辛时雨 楼主
不过到这我不知道该做什么测试了。。
2013年01月31日 11点01分 5
吧务
level 13
循环测试啊
2013年01月31日 12点01分 6
level 8
不会吧,我的基本上都是本机代码。。
2013年01月31日 12点01分 7
level 11
这帖子真心坑。[汗]
2013年01月31日 12点01分 8
吧务
level 13
不是说p代码速度慢么。。。
2013年01月31日 13点01分 9
level 10

又找到一段官方解释:
按照缺省规定,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 编写一小片代码或有大量计算的算法。这些,由于性能问题,在以前是决不可能的。使用这些运行非常快的“小片”,也能改善应用程序特定部分的响应,从而改进了整个应用程序的感觉性能。
2013年02月01日 01点02分 11
level 7
学习一下
2013年02月01日 05点02分 12
level 12
辛时雨 楼主
测试系统为:win7 64位版
[发自WindowsPhone客户端-百度贴吧]
2013年02月02日 03点02分 13
吧务
level 13

2013年02月02日 03点02分 14
level 1
p代码确实比本机代码快!我做winsock.本机卡死,p代码无压力!
2014年11月18日 03点11分 15
level 13
用途不同吧,如果是大量循环计算,本机再优化全开,那就是一个天上(本机)一个地下(P代码)了,反正各有优缺点,P代码生成的exe较小
2021年06月03日 08点06分 16
写算法,加密什么的,用P代码就算了
2021年06月03日 08点06分
1