从delphi7 到 Delphi2010 ---(二) 内存管理
2011-09-29 15:33
393 查看
delphi 2010 的内存管理 对 delphi 7 的内存管理进行了改善.
下面这段代码 在两个编译器下均能正常运行, 但是我们发现 , delphi 2010 可以申请更多的内存.
---- 测试环境 : windows 7.0
procedure TForm1.Button3Click(Sender: TObject);
const nm = 1024*1024*500;
Type
TAA = packed array[1..nm] of byte;
PAA = ^TAA;
var A:array[1..4] of PAA;
i,n:integer;
begin
for I := 1 to 4 do
begin
try
A[i]:=nil;
getmem( A[i] , sizeof( TAA));
except
on E:Exception do
memo1.Lines.Add( e.Message) ;
end;
memo1.Lines.Add( format('%p',[A[i]])) ;
end;
showmessage('OK');
for I := 1 to 4 do
begin
if (A[i]<>nil) then
begin
freemem( A[i] );
end;
end;
end;
delphi 7 编译的程序之运行结果 :
10090004
Out of memory
00000000
Out of memory
00000000
Out of memory
00000000
// delphi 2010 编译的程序之运行结果 :
40D10010
21900010
Out of memory
00000000
Out of memory
00000000
下面这段代码 在两个编译器下均能正常运行, 但是我们发现 , delphi 2010 可以申请更多的内存.
---- 测试环境 : windows 7.0
procedure TForm1.Button3Click(Sender: TObject);
const nm = 1024*1024*500;
Type
TAA = packed array[1..nm] of byte;
PAA = ^TAA;
var A:array[1..4] of PAA;
i,n:integer;
begin
for I := 1 to 4 do
begin
try
A[i]:=nil;
getmem( A[i] , sizeof( TAA));
except
on E:Exception do
memo1.Lines.Add( e.Message) ;
end;
memo1.Lines.Add( format('%p',[A[i]])) ;
end;
showmessage('OK');
for I := 1 to 4 do
begin
if (A[i]<>nil) then
begin
freemem( A[i] );
end;
end;
end;
delphi 7 编译的程序之运行结果 :
10090004
Out of memory
00000000
Out of memory
00000000
Out of memory
00000000
// delphi 2010 编译的程序之运行结果 :
40D10010
21900010
Out of memory
00000000
Out of memory
00000000
相关文章推荐
- TurboPower Async Professional 在Delphi2010及Delphi7中的安装
- Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结 .
- 让delphi2010能有delphi7的版面布局
- 从delphi7 到 Delphi2010 -- (一)基本数据类型的变化
- 从delphi7 到 Delphi2010 ---(四) TAdoDataset ,Decimal 字段
- TurboPower Async Professional 在Delphi2010及Delphi7中的安装
- 让delphi2010操作界面回到delphi7模式
- 放弃Delphi7拥抱Delphi2010的理由之一
- Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结
- Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结
- Delphi -修改文件夹的修改、创建日期 (Delphi7 /D2010 区别)
- delphi7-》delphi2010 中文乱码
- TurboPower Async Professional 在Delphi2010及Delphi7中的安装
- Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结
- .Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结
- 让delphi2010操作界面回到delphi7模式
- 项目升级到Delphi 2010总结(1)
- 周六给公司做了个delphi技术培训,主要是中间层技术及多线程技术(2010-11-06)
- EditorLineEnds.ttr 受影响的D版本 Delphi 8-2010
- Delphi的内存管理及内存泄露问题