[英]Javascript : how to reduce the memory size of a number?
如果我事先知道我的數字在0到100之間,是否有人知道如何減小JavasScript中數字的內存大小?
我的問題的示例和解釋:
我的JavaScript應用程序可以處理非常大的對象:每個對象都有數千個孩子。 我的對象看起來像“ sims”的集合:
[
{
gender : "male",
age : 45
},
{
gender : "female",
age : 21
},
{
gender : "female",
age : 78
},
]
太好了! 我可以使用booleans減少對象的內存大小!
但是,您知道一種減小“ age”屬性的內存大小的方法嗎?
每個人占用8個字節,盡管我知道數字不能是152042456.985,但只能是> 0和<100。
一個主意 ? 非常感謝 !
您可以輕松地將⌊32÷7⌋= 4個年齡存儲在一個整數中; 您還可以使用GZip壓縮或算術編碼,或使用各種花哨的技巧。
但是為什么要打擾呢? 目前,這實際上對您來說不是問題。 對象本身的內存開銷可能更重要。 32位就可以了,“成千上萬的孩子”並不是一個很大的數字。 999,999個年齡(最高的“千”)約為3MB的內存。
(順便說一句,您說的是代表“女性”的數字將是8個字節,但是所有常見的JavaScript引擎在內部將整數存儲為4個字節。)
存儲“鏈接”所需的指針將為每個使用字符串或年齡的對象的存儲機制增加4-8個字節。 盡管是類型數組,數字還是可以獲得的最節省空間的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.