2012-03-15 64 views
3

預警:一個潛在的愚蠢問題,純粹出於好奇。JavaScript - 對象大小

例如,如果我執行一個AJAX請求並獲取這樣一個1000個對象的數組;

{ 
    MinimumDistance: ..., 
    MaximumDistance: ..., 
    MinimumTime: ..., 
    MaximumTime: ..., 
    ReallyLongButDescriptivePropertyName: ... 
} 

這會消耗更多的內存比縮短成員名稱(例如MinDist)?

如果是這樣,我有什麼辦法來減少這些對象的內存佔用量,而不是縮短成員名稱?

謝謝。

+0

請求更少的對象(使用分頁)。 – Matthias 2012-03-15 12:31:18

+0

例如,您可以組合一些鍵......而不是Min/Max,例如可以有'DistanceRange:[min,max],TimeRange:[min,max]'。 – mVChr 2012-03-15 12:32:10

+0

鑑於您可以通過名稱訪問成員,因此必須將名稱存儲在內存中,因此減少它們可以爲您節省少量的內存。 (deflate/gzip會減少傳輸大小) – 2012-03-15 12:32:32

回答

0

使用更長的屬性可能會以更長的時間(意味着它佔用更多的字節,因此帶寬更多,並且有更多時間到達客戶端)響應。但通常情況下,響應是gzipped,所以與具有可理解的屬性名稱的用處相比,開銷很小。
在任何情況下返回1.000對象都不是一個好習慣,您應該對它們進行分頁並儘可能小,尤其是考慮到手機已經降低了帶寬。

+0

謝謝,但是我更加想知道對象解壓縮並存儲在內存中時的開銷。 – Barg 2012-03-15 12:36:34

+0

@Barg這是微不足道的,我認爲即使你的對象佔用5兆內存(這是很多文本)內存佔用將非常低。在我看來,真正的問題將是迭代大集合的開銷 – 2012-03-15 12:39:04