我已经实现了一个多级缓存模拟器,需要存储模拟器中当前的值.使用当前配置,存储的所有值的最大大小可以达到2G.显然,我不会假设这种最糟糕的情况,并预先分配所有内存.相反,我将程序设置为根据需要在块中分配内存.当我在calloc
先前在指定位置没有发生写入时,为了提供0值这一事实加剧了这种分配的费用.
我的问题是,每次需要多少内存应该分配多少内存?目前我正在使用一个任意值,我考虑了一些解决方案,它将使用整个系统内存的一些比例(我认为可以在编译和/或运行时动态检测它),但即使使用后者,我也使用了任意比率仍然不适合我.
任何洞察这种情况的最佳实践将不胜感激!