【发布时间】:2012-01-29 20:51:35
【问题描述】:
假设我们必须创建许多字节数组类型的小对象。大小各不相同,但始终低于 1024 字节,例如 780,256,953....
如果我们总是只分配字节[1024],并且只使用所需的空间,它会随着时间的推移提高 operator new 或 GC 效率吗?
UPD:这是短暂的对象,用于解析二进制协议消息。
UPD:在这两种情况下,对象的数量是相同的,只是分配的大小发生了变化(随机与总是 1024)。
在 C++ 中,由于碎片和 C++ 的新性能,这很重要。但是在 C# 中......
【问题讨论】:
-
你有没有分析过它自己看看?
-
不,我希望得到快速的答复,而且它需要长时间的分析系统。
-
由于对象是“短期对象,为解析二进制协议消息而创建”,您会考虑使用不安全代码和
stackalloc吗?看起来这正是它的目的:在需要高性能的情况下短期分配小型数组。 -
在优化方面没有免费的午餐。分析是游戏的名称。
标签: c# garbage-collection new-operator