内存平铺管理和大对象c#
本文关键字:对象 管理 内存 | 更新日期: 2023-09-27 18:02:47
我有一组图像存储在类型为Int16
的3D数组中,我缓存的图像数量可以达到600张或更多,这会影响内存性能和垃圾收集性能。我听说内存平铺可以增强内存管理,因为它将子数组元素设置在单独的块中。
-我可以在我的情况下使用内存平铺吗?
-如果是,我如何使用?
我可以在我的情况下使用内存平铺吗?
是的。int16[,,]的3d数组必须是一个内存块。把它切成片,它们已经变小了。([][,]).
要收集的东西越少越好。多维数组将被视为单个分配:
short[,,] a = new short[2,3,4];
锯齿数组将使用许多不同的分配。它较小的分配大小可能会更快地分配,但它可能会在收集期间给GC带来更大的压力:
short[][][] a = new short[2][][];
我以前从来没有听说过"记忆平铺",所以如果你能解释一下这是什么,我可能能更好地回答你的问题。