VB 与 VC++ 大比拼

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

作者:jyu1221(天同)

QQ:19632995

MSN:jyu1108@hotmail.com

很多人看到这个标题,肯定以为是VC++比VB的性能要好。但是你看了我下面的这个

测试例子,你就会对这个看法有一个180度的转变,不相信的话,你可以看下面的测试数据。

在VB和VC++的对话框上分别都放一个放一个LISTBOX框,然后都放一个按钮,在BUTTON的CLICK

事件里分别都加入50000条记录,记录内容都为"abcdef",其中timeGetTime函数用于记录时间的,

VB中调用的是API,需要定义一下。

在VB中的代码如下:

Private Sub Button1_Click()

Dim l1 As Long, l2 As Long

l1 = timeGetTime()

For i = 1 To 50000

List1.AddItem "abcdef"

Next

l2 = timeGetTime()

MsgBox l2 - l1

End Sub

在VC中的代码如下:

void CTestDlg::OnButton1()

{

CListBox *p;

p = (CListBox *)GetDlgItem(IDC_LIST1);

long l1 = timeGetTime();

for(int i=0;i<50000;i++)

{

p->AddString("abcdef");

}

long l2 = timeGetTime();

CString str1;

str1.Format("%d",l2-l1);

::MessageBox(NULL,str1,str1,0);

}

以上代码都是最常见的,一般人写的代码都是这个样子的,没有经过优化,

在我的机器上(WIN2000,p3)经过测试,测试结果:

VB/VC比较 需要的时间

--------------------------------------------------------

VB NATIVE EXE 3606(大约4秒不到)

VC DEBUG 185000(大约18秒)

VC RELEASE 12739(大约13秒)

-------------------------------------------------

结果怎么样,你有没有感到意外。让你意外的还在下面呢,我对VB中的程

序经过优化之后,时间只要1675(大约2秒都不到),添加了2条代码,一条是

List1.visible= false另一条是List1.visible= true 分别放到FOR 循环体的前后。

不相信的话,你可以在你自己的机器上测试一下。可能和我机器上略有不同,但大致

的比例不会差的太大。这就足以说明了,不是大部分人简单的认为,VB比VC的性能差。

通过这个测试例子,你应该看到了VB的威力了吧,它的速度在某些方面并没有比

VC++差,而是在这个测试例子里,相反的体现了,VB比VC++的速度要快。

总之,不能简单的认为VB比VC++的速度慢。在某些特殊的应用方便VB的速度比VC要

快,其实这还去决于编程人员的水平,对代码的优化情况。你知道为什么会出现这种

情况吗?其实道理很简单,我使用的是MFC类库,这下你该明白使用MFC的类库,速度

到底有多慢了吧!强列建议你亲自动手测试一下!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航