我应该相信C#编译器能够为我优化,还是应该在这种情况下使用不安全的代码

时间:2012-11-20 19:39:17

标签: c# memory-management

我的小班会经常被创建和销毁,绝大多数时候他们会被短暂使用,然后超出范围。我希望将这些东西分配到堆栈中。

我不能使用结构,因为我的对象需要析构函数。我刚刚发现使用stackalloc是不安全的。阅读后我发现c#并不一定总是在堆上创建类。如果在堆上创建这些东西,它仍然可以很好地阻碍我的表现。我应该相信c#在智能上将它们分配到堆栈上还是应该自己做?

1 个答案:

答案 0 :(得分:3)

如果你不能或不想依赖C#内存优化并想尽可能多地重用你的对象,你可以而且应该简单地实现Object Pool创建模式。

http://sourcemaking.com/design_patterns/object_pool

祝你好运