c# - 什么时候去对象池?

标签 c# memory-management object pooling

何时使用 C# 进行对象池化?任何好的前...

维护一个经常使用的对象池并从池中获取一个而不是创建一个新对象的优点和缺点是什么?

最佳答案

我能想到的只有两种类型的资源通常被合并:线程和连接(即连接到数据库)。

这两者都有一个首要问题:稀缺性。

  • 如果您创建了太多线程,上下文切换会浪费您所有的 CPU 时间。
  • 如果您创建了过多的网络连接,那么维护这些连接的开销就会比这些连接应该做的任何工作都要多。
  • 此外,对于数据库,出于许可原因,连接数可能会受到限制。

因此,您想要创建资源池的主要原因是您一次只能负担有限数量的资源。

关于c# - 什么时候去对象池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2646364/

相关文章:

c# - PsExec 在从编译为 "windows application"的非常简单的 c# 或 c++ gui 程序执行时挂起

c - 在 C 中分配的指针上 malloc 安全吗?

iphone - 在线程中解除分配

python - Python:无法复制内存使用情况的测试

c++ - 不能调用没有对象的成员函数。 C++

c# - 将对象转换为列表

php - MySQL 连接 : globally or in object?

c# - 等待 Workbook.RefreshAll() (C#)

c# - filterContext.Cancel 发生了什么(ASP.NET MVC)

c# - 在网络浏览器中查看 pptx 文件