gpt4 book ai didi

delphi - 字符串和高内存使用率

转载 作者:行者123 更新时间:2023-12-03 14:46:45 25 4
gpt4 key购买 nike

当我在 XE4 中运行此代码时,应用程序最终使用了约 800 MB。

为什么不接近 100 MB?

使用 Ansistring 代替字符串没有区别。

const
N = 10000000; // 10 million
M = 10;
var
i,j: integer;
s: string;
X: array of string;
begin
setlength(X,N);
for i:= 1 to N do
begin
s:= '';
for j:= 1 to M do s:= s+chr(65+random(25));
X[i-1]:= s;
end;
showmessage('pause');
end;

最佳答案

XE4 中长度为 10 的字符串使用 34 字节内存(参见 DocWiki )。 20字节为内容,2字节为#0终止符,12字节为管理数据。

每个数组条目都是指向该类型内存的指针。因此,数组中的这 1000 万个字符串最终至少使用 380 MB(字符串 340 MB,数组项 40 MB)。

关于delphi - 字符串和高内存使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21311350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com