c++builder程序的速度

begwolf 2000-06-03 04:03:00
VCL是pascal语言写的,这是否会影响所编程序的速度,尤其是数据库和网络程序?这种影响大不大?与VC相比如何?
...全文
312 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkstar 2000-06-06
  • 打赏
  • 举报
回复
VC 6

?a@@YAHH@Z PROC NEAR ; a,
; Line 2
push ebp
mov ebp, esp
sub esp, 72 ; 00000048H
push ebx
push esi
push edi
lea edi, DWORD PTR [ebp-72]
mov ecx, 18 ; 00000012H
mov eax, -858993460 ; ccccccccH
rep stosd
; Line 3
mov DWORD PTR _a$[ebp], 0
; Line 4
mov DWORD PTR _i$[ebp], 0
jmp SHORT $L219
$L220:
mov eax, DWORD PTR _i$[ebp]
add eax, 1
mov DWORD PTR _i$[ebp], eax
$L219:
mov ecx, DWORD PTR _i$[ebp]
cmp ecx, DWORD PTR _n$[ebp]
jge SHORT $L221
; Line 6
mov edx, DWORD PTR _a$[ebp]
add edx, DWORD PTR _i$[ebp]
mov DWORD PTR _a$[ebp], edx
; Line 7
jmp SHORT $L220
$L221:
; Line 8
mov eax, DWORD PTR _a$[ebp]
; Line 9
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0
?a@@YAHH@Z ENDP ; a
halfdream 2000-06-06
  • 打赏
  • 举报
回复
呵呵我建议举几个例子来看看:
这儿有一段程序:
int a(int n)
{
int a=0;
for(int i=0;i<n;i++)
{
a+=i;
}
return a;
}

下面是用BCB4 编译产生的汇编代码:
.......................................
push ebp
mov ebp,esp
mov ecx,dword ptr [ebp+8]
@1:
xor edx,edx
@2:
xor eax,eax
cmp ecx,eax
jle short @4
@3:
add edx,eax
@5:
inc eax
cmp ecx,eax
jg short @3
@4:
mov eax,edx
@8:
@7:
pop ebp
ret
.....................................
现在我手边没有VC .
希望哪位感兴趣,把相应的汇编代码贴上来.

因为实际的问题是比较复杂的.这样的比较也许意思不大.
alexela 2000-06-06
  • 打赏
  • 举报
回复
C++Builder语言的编译器是很不错的。用C++Builder编程,主要是优化代码,灵活性强。我不同意KXY 的观点。用C++Builder 编数据库和网络程序,由于其采用C代码,其效率和速度以及优化性,都远好于POWERBULDER和JAVA。这一点你用了就会知道。
C++Builder 编译器是一种优化编译器,并不是单纯的C编译器。由于采用了C++,对程序进行了有效的数据封装,其安全性是C、VC所不能比的。可能程序运用继承,代码增多,但其速度和执行效率不会落下。这点如果你了解C++的多态性就会明白。
kxy 2000-06-03
  • 打赏
  • 举报
回复
最后的程序的执行速度和编译器的好坏有关,和语法无关.
不管语法是C的还是Pascal的.
打一个比方
delphi :
function Add(a,b:integer) : integer;
begin
result := a+b;
end;
C :
int add(int a,int b)
{
return a+b;
}
如果C的编译器比较差,编译出来的汇编码是(我只是打比方,我的汇编比较差)
mov ecx,eax
mov ebx,edx
add ebx , ecx
mov eax,ebx
//
如果pascal的编译器比教好编译出来的汇编码只要一条
add eax,edx
//
Borland是做编译器起家的,他的编译器还是不错的,可惜windows是M$的
M$的编译器可能比Borland的要好一点点.
halfdream 2000-06-03
  • 打赏
  • 举报
回复
VCL 做的事比较MFC要多一些。
不过速度损失非常有限。
而且它避免了很多人为而造成的速度变慢因素,VC则不然。
至于网络程序,两者速度为什么会有差别?不过开发速度倒很有差别。
至于数据库程序,BCB可以选择访问数据库的方法多种多样,
与VC同样方式访问数据库的时候, 两者也并没有什么差别。
kxy 2000-06-03
  • 打赏
  • 举报
回复
比VC要稍微慢一点,
pascal最后也是编译成机器原生码.
windows是M$的,VC也是M$的,所以VC的原生码.可能要快一些.
Wilbur 2000-06-03
  • 打赏
  • 举报
回复
汇编语言的程序一定比basic程序快?
Borland C++Builder 5.0 (简介)   Borland C++Bilder 5.0是Interprise(Borland)公司推出的基于C++ 语言的快速应用程序开发(Rapid Application Development,RAD)工具,它是最先进的开发应用程序的组件思想和面向对象的高效语言C++融合的产物。C++Builder 充分利用了已经发展成熟的Delphi 的可视化组件库(Visual Component Library,VCL),吸收了Borland C++ 5.0 这个优秀编译器的诸多优点。C++Builder 结合了先进的基于组件的程序设计技术,成熟的可视化组件库和优秀编译器,调试器。发展到5.0版本,C++Builder 已经成为一个非常成熟的可视化应用程序开发工具,功能强大而且效率高。 C++Builder的特色: 1.C++Builder 是高性能的C++开发工具   C++Builder是基于C++的,它具有高速的编译,连接和执行速度。同时,C++Builder具有双编译器引擎,不仅可以编译C/C++程序,还能编译Object Pascal语言程序。 2.C++Builder是优秀的可视化应用程序开发工具   C++Builder是一完善的可视化应用程序开发工具,使程序员从繁重的代码编写中解放出来,使他们能将注意力重点放在程序的设计上,而不是简单的重复的劳动中。同时,它提供的完全可视的程序界面开发工具,从而使程序员对开发工具的学习周期大大缩短。 3.C++Builder具有强大的数据库应用程序开发功能   C++Builder 提供了强大的数据库处理功能,它使的程序员不用写一行代码就能开发出功能强大的数据库应用程序,这些主要依赖于C++Builder众多的数据库感知控件和底层的BDE数据库引擎。C++Builder除了支持MicroSoft的ADO(Active Data Object)数据库连接技术,还提供了一种自己开发的成熟的数据库连接技术——BDE(Borland Database Engine)数据库引擎。 4.C++Builder具有强大的网络编程能力 C++Builder具有众多的Internet应用程序开发控件,如WebBroker,CppWebBroswer,WinSocks等,它们基本含盖了Internet应用的全部功能,利用它们程序员可以方便地建立自己地Internet应用程序

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧