![]() |
2
1
一些实例也可以跨线程边界传递 只有“一些”?因此,如果能让那些不能传递给其他线程的线程更便宜,那么您也许可以为这些线程支付额外的费用。有多种方法可以让我想到每个线程有一个分配器,避免在分配或释放分配器所属的线程时需要锁定。我不知道在你的程序中哪一个是可能的:
再往后退一步,你的应用程序是否经常处于这样一种状态:你知道在某一点之后分配的所有单元格(可能在过去有一点)都不再使用了?如果是这样的话,假设你的小对象的析构函数没有做任何非常紧急的事情,那么就根本不用费心释放单元了——在“某个点”创建一个新的分配器,并将旧的标记为不再用于新的分配。当您“进入状态”时,释放整个分配器及其底层缓冲区。如果“某个点”和“状态”是同时的,那么就更容易了——只需重置分配器。 |
![]() |
3
0
您可以确保使用 low fragmentation heap . 在Vista和以后的操作系统中,它是默认的,但我不认为以前的操作系统是这样的,这会对小对象的分配速度产生很大的影响。 |
![]() |
Willy · LINQ:将分组列表转换为新列表 8 年前 |
![]() |
Kapil · 如何使用参数设置脚本任务SSI的路径 8 年前 |
![]() |
c00000fd · 跨命名空间和不同的.H文件的友元类 8 年前 |
![]() |
tangoal · 调用模板类成员时非法使用此类型作为表达式 8 年前 |