Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When to go for object pooling?

When to go for object pooling using C#? Any good ex...

What are the pro's and con's of maintaining a pool of frequently used objects and grab one from the pool instead of creating a new one?

like image 291
ACP Avatar asked Apr 15 '10 14:04

ACP


1 Answers

There are only two types of resources I can think of that are commonly pooled: Threads and Connections (i.e. to a database).

Both of these have one overarching concern: Scarcity.

  • If you create too many threads, context-switching will waste away all of your CPU time.
  • If you create too many network connections, the overhead of maintaining those connections becomes more work than whatever the connections are supposed to do.
  • Also, for a database, connection count may be limited for licensing reasons.

So the main reason you'd want to create a resource pool is if you can only afford to have a limited number of them at any one time.

like image 122
Aaronaught Avatar answered Oct 22 '22 16:10

Aaronaught