Dar*_*ren 5 .net c# out-of-memory multidimensional-array
我需要能够快速查找这些数据并需要访问所有这些数据.不幸的是,我还需要节省内存(其中一些会导致内存OutofMemoryExceptions)
short[,,] data = new short[8000,8000,2];
Run Code Online (Sandbox Code Playgroud)
我尝试过以下方法:
怎么样的数据库?毕竟,他们是为此而做的.
我建议你看看一些NoSQL数据库.根据您的需要,还有内存数据库[显然可能遭受相同的内存不足问题]和可以复制部署或链接到您的应用程序的数据库.
我不想手动搞乱存储细节,内存映射文件是一些数据库(至少是MongoDB)在内部执行的操作.从本质上讲,您将自己编写数据库,编写数据库并非易事 - 即使您缩小了用例范围.
Redis或Membase听起来像是你问题的合适替代品.据我所知,两者都能够为您管理RAM利用率,即根据需要从磁盘读取数据,并将数据缓存在RAM中以便快速访问.当然,您的访问模式将在此处发挥作用.
请记住,构建这些数据库需要付出很多努力.据维基百科称,Zynga正在使用Membase,Redis由VMWare赞助.