jpf*_*ius 4 delphi string memory-management delphi-xe
我有大量的对象都存储了文件名.所有文件名都在给定的基目录中(让我们称之为C:\BaseDir\).我现在正在考虑两种选择:
如果我正确理解Delphi字符串,第二种方法将需要更少的内存,因为基本路径字符串是共享的 - 假设我将相同的字符串字段传递给所有对象,如下所示:
TDataObject.Create (FBasePath, RelFileName);
Run Code Online (Sandbox Code Playgroud)
这个假设是真的吗?内存中只有一个基本路径的字符串实例吗?
如果有人知道处理这种情况的更好方法,也可以随意评论.
谢谢!
你是对的.当你用两个字符串变量写s1:= s2时,内存中有一个字符串,其中包含(至少两个)引用.
您还要问是否尝试减少内存中的字符串数量是一个好主意.这取决于与其他内存消耗对象相比有多少字符串.只有你能真正回答这个问题.