我有一大堆對象都有一個文件名存儲在裏面。所有文件名都在給定的基本目錄內(我們稱之爲C:\BaseDir\
)。我現在考慮兩種選擇:德爾福字符串共享問題
- 店絕對路徑中的對象
- 存儲相對路徑的對象和存儲的基本路徑還
如果我理解德爾福字符串正確第二種方法將需要更少的內存,因爲基本路徑字符串共享 - 因爲我相同的字符串場傳遞給這樣所有對象:
TDataObject.Create (FBasePath, RelFileName);
這個假設是真的嗎?內存中是否只有一個基本路徑的字符串實例?
如果有人知道更好的方式來處理這種情況,請隨時評論。
謝謝!
不成熟的優化,同意。但是,保持基路徑與相關基路徑分離的設計原因可能存在 - 例如,在全局範圍內更容易更改基路徑,同時保持所有相同的相對路徑與當前基路徑可能相同。但是在這種情況下,他可能最好將基本路徑保持爲單獨的全局字符串變量,並在每個文件訪問之前將對象中的相對路徑連接起來。 –