c++builder程序的速度

begwolf 2000-06-03 04:03:00
VCL是pascal语言写的,这是否会影响所编程序的速度,尤其是数据库和网络程序?这种影响大不大?与VC相比如何?
...全文
315 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程序快?

13,825

社区成员

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

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