簡體   English   中英

管理大量布爾狀態的最有效方法

[英]Most efficient way to manage large amount of boolean state

我想管理最多10 ^ 18項的布爾狀態(開/關)。 在Java中執行此操作的內存和計算效率最高的方法是什么? 我無法創建這么大的布爾數組,因為數組大小的基本類型是int ,而BitSet類也是如此。

例如:

long numSwitches = Long.MAX_VALUE;
boolean[] switches = new boolean[numSwitches];

給我一個編譯錯誤: Incompatible types, Reguired: int, Found: long

老實說,如果不使用超級計算機,我認為這樣的事情是不可能的。 10 ^ 18是一個非常大的數字,它實際上相對接近單粒鹽中的原子數! 如果每個原子是1位,那么總內存將高達125 PB(125,000太字節)!

即使您希望通過使用某種流順序訪問位(隨機訪問將要求您將其全部加載到內存中),它仍然需要花費大量時間。

除非一次啟用只有幾位與總量相比(幾十億,這仍然需要幾千兆字節的內存),我不認為有任何合理的解決方法。 但是,考慮一下它仍然非常有趣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM