我确信这个答案将取决于用户机器,但必须有一些关于 pinning data 的最佳实践。
我需要保存 5 个字节数组,每个字节包含 1.048.576 个字节。通常我更喜欢使用GCHandle
(托管)内存,但有些人说它会减慢 GC。我知道这可能会发生,但是需要固定多少内存/对象才能开始真正影响 GC?
以下是我拥有的选项:
GCHandle.Alloc GCHandleType.Pinned
(管理)。它会减慢GC??Marshal.AllocHGlobal
(非托管访问)。不安全的代码- 使用 a
Bitmap
在 Scan0 中保存数据(非托管访问)。不安全的代码