游戏开发论坛

 找回密码
 立即注册
搜索
楼主: winspy

对VB的效率不满意?原因可能出在你自己身上哦!

[复制链接]

13

主题

594

帖子

595

积分

高级会员

Rank: 4

积分
595
发表于 2005-11-21 19:13:00 | 显示全部楼层

Re:对VB的效率不满意?原因可能出在你自己身上哦!

呵呵,等你们比出来了他肯定会说:

比较是没有用的,要应用到游戏中才看得出来...

然后又是那句老话:

你们也做个“游戏”出来啊...

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-11-21 19:23:00 | 显示全部楼层

Re: Re:对VB的效率不满意?原因可能出在你自己身上哦!

esxgx: Re:对VB的效率不满意?原因可能出在你自己身上哦!

OK,我们测试吧,
首先纪录原来的开机的毫秒数,必须通过API GetTickCount
然后用一个变量作循环 100000000...



程序和可执行文件发上来了,我的电脑是AMD/毒龙 1.2G /256M内存,
VB程序运行5万条记录用1.7秒左右,现在显示的是秒,可以精确到1/1000秒。

用API做的:
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Private Sub Command1_Click()
Dim l1 As Long, l2 As Long
l1 = timeGetTime()
For i = 1 To 50000
List1.AddItem "游戏之家"
Next
l2 = timeGetTime()
MsgBox (l2 - l1) / 1000               '显示时间
Command1.Caption = "再测试要退出重来"
Command1.Enabled = False
End Sub


WANGH 你不要找碴,有本事你也写一个,我只是觉得我现在用的VB效率够了,程序已发,没点实力是别想在网上混......

sf_20051121192235.rar

3.57 KB, 下载次数:

14

主题

163

帖子

178

积分

注册会员

Rank: 2

积分
178
QQ
发表于 2005-11-21 19:27:00 | 显示全部楼层

Re:对VB的效率不满意?原因可能出在你自己身上哦!

C代码:
优化代码量,速度稍微提升:
#include <stdio.h>
#include <windows.h>

int main(int argc, char *argv[])
{
    register unsigned long i=100000000,d=0,d1=10;
    DWORD st=GetTickCount();
    while(i>0){--i;d++;}
    printf("d的结果(第一次):%d\n",d);
    while(i<5){++i;d1*=10;}
    printf("d的结果(第一次):%d\n一共执行时间:%d毫秒\n",d1,GetTickCount()-st);
    system(&quotAUSE");
    return 0;
}

14

主题

163

帖子

178

积分

注册会员

Rank: 2

积分
178
QQ
发表于 2005-11-21 19:34:00 | 显示全部楼层

Re:对VB的效率不满意?原因可能出在你自己身上哦!

To 游戏之家:
我是说计算,老大.
计算牵扯到寄存器,而且不要除以1000,牵扯到精度问题.

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-11-21 19:35:00 | 显示全部楼层

Re:对VB的效率不满意?原因可能出在你自己身上哦!

我发的是可以运行的,你发个可以运行的EXE来,还有你用C速度胜了VB也没什么光彩的,这个测试速度和CPU有很大关系。

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-11-21 19:36:00 | 显示全部楼层

Re: Re:对VB的效率不满意?原因可能出在你自己身上哦!

esxgx: Re:对VB的效率不满意?原因可能出在你自己身上哦!

To 游戏之家:
我是说计算,老大.
计算牵扯到寄存器,而且不要除以1000,牵扯到精度问题.



我除1000是换算成秒.

14

主题

163

帖子

178

积分

注册会员

Rank: 2

积分
178
QQ
发表于 2005-11-21 19:42:00 | 显示全部楼层

Re:对VB的效率不满意?原因可能出在你自己身上哦!

另外次数不够,谢谢,1亿次.还有相乘5次.
最新C代码203毫秒)
#include <stdio.h>
#include <windows.h>

int main(int argc, char *argv[])
{
    register unsigned long i=100000000,d=0,d1=10;
    DWORD st=GetTickCount();
    while(i>0){--i;++d;}
    printf("d的结果(第一次):%d\n",d);
    while(i<5){++i;d1=(d1<<3)+(d1<<1);}
    printf("d的结果(第一次):%d\n一共执行时间:%d毫秒\n",d1,GetTickCount()-st);
    system(&quotAUSE");
    return 0;
}

d的结果(第一次):100000000
d的结果(第一次):1000000
一共执行时间:203毫秒
请按任意键继续 . . .

14

主题

163

帖子

178

积分

注册会员

Rank: 2

积分
178
QQ
发表于 2005-11-21 19:46:00 | 显示全部楼层

Re:对VB的效率不满意?原因可能出在你自己身上哦!

如果第一步换成1000000次的,结果如下惊人)
d的结果(第一次):1000000
d的结果(第一次):1000000
一共执行时间:0毫秒
请按任意键继续 . . .

0毫秒只是近似值,反正小于1

14

主题

163

帖子

178

积分

注册会员

Rank: 2

积分
178
QQ
发表于 2005-11-21 19:51:00 | 显示全部楼层

Re: 对VB的效率不满意?原因可能出在你自己身上哦!

这个是原来的题目的测试程序(名字我就不改了,第二行的就是第二次运算)

sf_20051121195041.rar

4.32 KB, 下载次数:

14

主题

163

帖子

178

积分

注册会员

Rank: 2

积分
178
QQ
发表于 2005-11-21 19:52:00 | 显示全部楼层

Re: 对VB的效率不满意?原因可能出在你自己身上哦!

第一次换成1百万的(名字我就不改了,第二行的就是第二次运算)

sf_2005112119524.rar

4.03 KB, 下载次数:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 19:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表