☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆| ▏☆─VB究竟比VC慢多少?───────────────────☆ 明了了,谢谢。不过比较过Delphi和VB和VC++和C++ Builder没有? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我这里只装了“Microsoft Visual Basic 6.0 ”与“Microsoft Visual C++ 6.0” VB的调试环境是解释运行的编译成exe后才是编译运行的而VC程序只能编译成exe后再运行,自然是编译运行的 啊,我就是vb的初学者,呵呵,我还以为vb是最差的呢 :) 这样看来还可以 看了源程序:你调用了API函数,运行速度会比用VB语言实现相同的功能要快;操作指针比直接操作数组要快;个人经验--我用以前用VB和VC分别处理过二进制文件的读写和数据的处理,主要是进行位操作和比较,都是编译后运行的,VB的程序比VC程序慢大约四到五倍,(文件不大,大约一兆左右)。个人感觉:VB程序比VC程序是要慢一些,要看程序处理的工作是什么,一般情况下两者的速度相差不大,除非你的程序对速度要求和资源要求非常高。进行数据处理VC比VB要快几倍,特别是进行位操作,但不象所说的快十几倍。我想,所说的“快”可能是指VB不借助API,全部用VB本身的语言来做。不过谁能说API不是VB编程中的一部分呢?用好API是你成为高手的必要条件。以上为个人见解,欢迎指正。对zyl910老兄的探索精神表示钦佩. 另:我在调试你的VB程序时程序停止响应。断点设在SCROLL_CHANGE中。 你仔细看啊那个VC程序也调用了同样的API算法都一样这样才能比较 可是VC用自己的语言也可设计出效率、速度和API相同的函数,VB就够呛了吧。 回复人: calyforer(无心) ( ) 信誉:100 2002-10-02 15:25:00 得分:0 另:我在调试你的VB程序时程序停止响应。断点设在SCROLL_CHANGE中。====================================================================把光标定位到118行(Private Sub VSol_Change())Ctrl+F8拖动滚动条F8、F8、F8、F8、F8、F8……F5没有问题啊 你仔细看了没有那些API只是了位图创建、位图传输函数真正起作用的还是自己写的程序(DrawMap过程) 很难想象程序不用API,当是直接操作CPU和内存啊!有谁用VC++开发环境写得出(不是C++),我佩服......... 不用API?!那VC IDE的窗口是怎样创建的?任何窗口都是通过CreateWindow、CreateWindowEx创建的,只不过有些编程语言、类库、控件将它们屏蔽了 说API,不能一网都打尽,没听说有谁用创建N个窗口来比较运行速度的。 如果你在VB和VC中各运行 “1+1” N次的话,相差的程度更小。VC语言执行的效率比VB要快一些,但不是在所有的方面都比VB要快很多,大多数时候我们是感觉不出它们的区别。 API?楼上的,能举一个不用API的例子吗? 真的好笑现在相同算法的比较结果出来了就有人故意扯到其他方向去了http://www.csdn.net/expert/topic/841/841534.xml?temp=.816601回复人: lanzhengpeng2(兰征鹏) ( ) 信誉:100 2002-7-2 10:11:03 得分:0 zyl910(910:分儿,我来了!) (L2002) :也是啊,我根本不会VB。不过,你用VB怎么写,也比不上我随手用C/C++写的东西速度快(相同算法的基础上) 呵呵,没什么,只是讨论一下。我用VC编的处理二进制文件和进行数据处理就一个API也没有用。可是我用VB用却不能用VC的算法来实现位操作,当然VB也可以用逻辑运算来模拟位运算,可是速度却差了很远,而且也不是真正的位运算。这是VB天生的缺点,不承认不行。连相同的算法都找不到,不知道如何进行比较。(注:我用VB也确实能进行类似的操作,可是确实慢不少)。如果你说在你的程序中确实差不了多少,那是当然。原因我也说过了,不过我说的可不是故意扯到什么其它的地方,都是在编程中遇到的实际问题。不能说除了你和程序之外其它的情况就不存在了。我也说过了,在大部分的情况下两者的差别并不是很明显,不过你不能否认在某些情况下尤其是在大批量的数据处理情况下,VB和VC的差别还是比较明显的。 C 和 Basic 比不单是速度的差别.接上面的"位移": >> << 这两个运算符 VB 没有.特别说一下, 我国庆放假前一天, 就用 VC 写了一个 DLL 专门用于 basic 不能完成的位移操作 那样dll没有什么用在大规模的循环中使用动态连接库中的函数是很慢的比如用CopyMemory分解RGB就比And分离慢 接上上层的:我就是用VC做DLL然后在VB中用,这样可以提高很多的速度。VB的位操作实在是......。我本来是候用全用VB做程序,可是最后还是选择VC来做一部分确实需要速度的部分,不得已而为之啊!!! 不,我们是把大规模的循环写在DLL中,在VB中直接使用得到结果就可以了。如果你说不知道在实际情况中的循环次数,那就用参数传递次数就是了,真正的循环是在VC中做的。 是怎样位移?讲详细一点啊把整个文件的内容右移n位?其实VB有很多种可以加快速度的技巧 to calyforer(无心):你这原则可真有个性:)我再说说吧:位移的一个典型应用是做快速乘除法, 特别是除法, 除法狂占 CPU 时间.但在特殊情况下, 可以用很快的位移操作代替很慢的除法.这种特殊情况是, 当以 2, 4, 8, 16.............除某一个数时, 可以用移位代替. 这种运算转换频繁用于图象的处理优化另外, VB 不支持汇编嵌入, 这也是做游戏, 图象处理时很难让人接受的,因为VB 下用 MMX SSE 指令不方便嘛 回复人: zyl910(910:分儿,我来了!) ( ) 信誉:93 2002-10-02 17:01:00 得分:0 那样dll没有什么用在大规模的循环中使用动态连接库中的函数是很慢的比如用CopyMemory分解RGB就比And分离慢 ====================================================================这句话是对realdreamer(1,2,3,跑~~ 哈,你咋那么慢啊)说的 to zyl910:没有人会笨到这样做public sub f1() for n = 1 to 100 call dll 中的函数 next end sub通常是这样:public sub f1() call dll 中的函数, dll 中做循环end sub 我提一个我在工作中最常遇到的问题,这个问题我以前在VC++论坛上提过,看看zyl910老兄用VB怎么优化:在一个上百兆的数据文件中,查找所有的4—64位重码并将结果输出成文件。看好,是二进制重码。 呵呵,我以前提这个问题时是要处理一个上G的文件,我不能想象用VB做会有什么结果。好了,我老婆要我去陪她散步,晚上再来看。 TO 楼主:没有必要这样来比较. VB , VC 各有优势. VB 快速开发, 天生与 COM, ACTIVEX 无缝结合, 而 COM/ACTIVEX 在WINDOWS平台上应用广泛, 注定VB有其应用领域. 在某些方面我更愿意用 VB 来做, 比如界面, 比如一些小型的数据库访问操作. 能灵活使用 VB , VC 乃至各个开发工具的长处来进行工作, 才是聪明的软件开发人员.OK, 谁好, 谁坏的问题我通常是不讨论的, 只是看到楼主三颗星却热衷于此, 奇怪之下, 进来看看. 我这贴之后, 不在查看 . 祝各位好运 realdreamer(1,2,3,跑~~ 哈,你咋那么慢啊)你说的很对我关键是看lanzhengpeng2(兰征鹏)不顺眼http://www.csdn.net/expert/topic/841/841534.xml?temp=.816601回复人: lanzhengpeng2(兰征鹏) ( ) 信誉:100 2002-7-2 10:11:03 得分:0 zyl910(910:分儿,我来了!) (L2002) :也是啊,我根本不会VB。不过,你用VB怎么写,也比不上我随手用C/C++写的东西速度快(相同算法的基础上) 现在cpu频率这么高,那点时间又算什么呀 同意siqi163的说法...特别是现在做那些关于数据库的应用程序...用VC来做比VB慢很多...真正做完了...运行起来根本就差不了多少...还是引用不知哪位老兄的话:"学就学VC...用就用VB"... 强制结束任务 工程组中工程的窗体丢失 进制转换问题?? 一个非常头疼的问题,有谁能来帮帮我呀?拜托了 VB里关于毫秒延时的问题 winsocket 控制发文件,如何控制利用最大网络带宽 CSDN 的 Blog 不用的时候就好好的,一用的时候就挂了! 用VB6作的系统,打包运行后,系统提示进行Office的配置,请问如何解决? 制作VBA安装程序 在VB中样加往菜单条上加图标???? VB6下怎么用ADO连接 SYBASE 数据库? VB启动.chm格式帮助文件的问题? 如何动态生成父子两级控件
编译成exe后才是编译运行的而VC程序只能编译成exe后再运行,自然是编译运行的
你调用了API函数,运行速度会比用VB语言实现相同的功能要快;
操作指针比直接操作数组要快;
个人经验--我用以前用VB和VC分别处理过二进制文件的读写和数据的处理,主要是进行位操作和比较,都是编译后运行的,VB的程序比VC程序慢大约四到五倍,(文件不大,大约一兆左右)。
个人感觉:VB程序比VC程序是要慢一些,要看程序处理的工作是什么,一般情况下两者的速度相差不大,除非你的程序对速度要求和资源要求非常高。
进行数据处理VC比VB要快几倍,特别是进行位操作,但不象所说的快十几倍。
我想,所说的“快”可能是指VB不借助API,全部用VB本身的语言来做。不过谁能说API不是VB编程中的一部分呢?用好API是你成为高手的必要条件。
以上为个人见解,欢迎指正。对zyl910老兄的探索精神表示钦佩.
那个VC程序也调用了同样的API算法都一样
这样才能比较
另:我在调试你的VB程序时程序停止响应。断点设在SCROLL_CHANGE中。====================================================================
把光标定位到118行(Private Sub VSol_Change())
Ctrl+F8
拖动滚动条
F8、F8、F8、F8、F8、F8……
F5
没有问题啊
任何窗口都是通过CreateWindow、CreateWindowEx创建的,只不过有些编程语言、类库、控件将它们屏蔽了
现在相同算法的比较结果出来了
就有人故意扯到其他方向去了
http://www.csdn.net/expert/topic/841/841534.xml?temp=.816601回复人: lanzhengpeng2(兰征鹏) ( ) 信誉:100 2002-7-2 10:11:03 得分:0
zyl910(910:分儿,我来了!) (L2002) :
也是啊,我根本不会VB。不过,你用VB怎么写,也比不上我随手用C/C++写的东西速度快(相同算法的基础上)
我用VC编的处理二进制文件和进行数据处理就一个API也没有用。
可是我用VB用却不能用VC的算法来实现位操作,当然VB也可以用逻辑运算来模拟位运算,可是速度却差了很远,而且也不是真正的位运算。这是VB天生的缺点,不承认不行。连相同的算法都找不到,不知道如何进行比较。
(注:我用VB也确实能进行类似的操作,可是确实慢不少)。
如果你说在你的程序中确实差不了多少,那是当然。原因我也说过了,不过我说的可不是故意扯到什么其它的地方,都是在编程中遇到的实际问题。不能说除了你和程序之外其它的情况就不存在了。我也说过了,在大部分的情况下两者的差别并不是很明显,不过你不能否认在某些情况下尤其是在大批量的数据处理情况下,VB和VC的差别还是比较明显的。
在大规模的循环中使用动态连接库中的函数是很慢的比如用CopyMemory分解RGB就比And分离慢
我就是用VC做DLL然后在VB中用,这样可以提高很多的速度。VB的位操作实在是......。
我本来是候用全用VB做程序,可是最后还是选择VC来做一部分确实需要速度的部分,不得已而为之啊!!!
如果你说不知道在实际情况中的循环次数,那就用参数传递次数就是了,真正的循环是在VC中做的。
讲详细一点啊
把整个文件的内容右移n位?其实VB有很多种可以加快速度的技巧
你这原则可真有个性:)我再说说吧:位移的一个典型应用是做快速乘除法, 特别是除法, 除法狂占 CPU 时间.但在特殊情况下, 可以用很快的位移操作代替很慢的除法.这种特殊情况是, 当以 2, 4, 8, 16.............除某一个数时, 可以用移位代替. 这种运算转换频繁用于图象的处理优化另外, VB 不支持汇编嵌入, 这也是做游戏, 图象处理时很难让人接受的,因为VB 下用 MMX SSE 指令不方便嘛
那样dll没有什么用
在大规模的循环中使用动态连接库中的函数是很慢的比如用CopyMemory分解RGB就比And分离慢
====================================================================这句话是对realdreamer(1,2,3,跑~~ 哈,你咋那么慢啊)说的
public sub f1()
for n = 1 to 100
call dll 中的函数
next
end sub通常是这样:public sub f1()
call dll 中的函数, dll 中做循环
end sub
在一个上百兆的数据文件中,查找所有的4—64位重码并将结果输出成文件。
看好,是二进制重码。
好了,我老婆要我去陪她散步,晚上再来看。
你说的很对
我关键是看lanzhengpeng2(兰征鹏)不顺眼http://www.csdn.net/expert/topic/841/841534.xml?temp=.816601回复人: lanzhengpeng2(兰征鹏) ( ) 信誉:100 2002-7-2 10:11:03 得分:0
zyl910(910:分儿,我来了!) (L2002) :
也是啊,我根本不会VB。不过,你用VB怎么写,也比不上我随手用C/C++写的东西速度快(相同算法的基础上)
特别是现在做那些关于数据库的应用程序...
用VC来做比VB慢很多...真正做完了...运行起来根本就差不了多少...还是引用不知哪位老兄的话:"学就学VC...用就用VB"...