应该何时更喜欢对象池而不是动态分配的对象?
我需要每秒创建和销毁数千个对象.它本身是否足以决定支持对象池?
谢谢.
许多年前,我被告诫,尽可能以相反的顺序释放资源以分配资源.那是:
block1 = malloc( ... );
block2 = malloc( ... );
... do stuff ...
free( block2 );
free( block1 );
Run Code Online (Sandbox Code Playgroud)
我想在640K MS-DOS机器上,这可以最小化堆碎片.在C#/ .NET应用程序中执行此操作是否有任何实际优势,或者这种习惯是否已经超过其相关性?
他们存在吗?
*添加澄清:
是否有任何可用的库实现无锁(这是线程安全的,可能是实现自旋锁或其他轻量级同步)ObjectPool(http://en.wikipedia.org/wiki/Object_pool_pattern)使用模板用C++语言编写?