Com COINIT\u SPEED\u OVER\u MEMORY有什么作用?

Com COINIT\u SPEED\u OVER\u MEMORY有什么作用?,com,Com,调用CoInitializeEx时,可以为dwCoInit指定以下值: typedef enum tagCOINIT { COINIT_MULTITHREADED = 0x0, COINIT_APARTMENTTHREADED = 0x2, COINIT_DISABLE_OLE1DDE = 0x4, COINIT_SPEED_OVER_MEMORY = 0x8, } COINIT; 提示性标题为“内存速度”的值有什么作用?现在它在COM中被忽略了吗?

调用
CoInitializeEx
时,可以为
dwCoInit
指定以下值:

typedef enum tagCOINIT {
    COINIT_MULTITHREADED     = 0x0,
    COINIT_APARTMENTTHREADED = 0x2,
    COINIT_DISABLE_OLE1DDE   = 0x4,
    COINIT_SPEED_OVER_MEMORY = 0x8,
} COINIT;

提示性标题为“内存速度”的值有什么作用?现在它在COM中被忽略了吗?

不知道它是否仍然被使用,但它是为了改变COM算法使用的平衡

如果你有大量的内存并且不惜一切代价想要速度,你会设置这个标志

在内存不足的环境中,关闭该标志有利于减少内存使用


事实证明,(名望的)奇迹现在已经影响到了这个话题,尽管这面旗帜的本意是什么,但它显然什么也没做

有关更多详细信息,请参阅:

您应该何时启用此模式?这没关系,因为据我所知,COM中没有任何代码会根据进程是否已被置于此模式而更改其行为!看起来这个标志是在引入DCOM时添加的,但它从未连接到任何东西。(或者任何连接到它的代码都从未发布过。)

同样来自原始COM+架构师之一Steve Swartz:

COM忽略了内存上的速度