打电话时 CoInitializeEx, 你可以指定以下值 dwCoInit:

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

什么暗示的标题为"速记忆"的价值做什么?是它忽略了这些天在COM?

有帮助吗?

解决方案

不知道,如果它仍然使用,但它意味着改变的余额使用的COM算法。

如果你已经吨的存储器,并希望的速度在所有费用,设置这标志。

在低存的环境,离开的,标志闭会有利于减少存储器的使用。


事实证明,奇妙的 雷蒙德*陈 (的 "老新的东西" 名)现已称重的问题,尽管是什么标志物 意思 做到的,它显然不会什么都没有。

看看 什么COINIT_SPEED_OVER_MEMORY标志CoInitializeEx做什么? 更多的细节:

当你应该启用这个模式?没关系,因为就我所知,没有代码,在任何地方COM改变其行为的基于进程是否已经被放置到这种模式!它看起来像国旗加入时DCOM介绍,但是它从来没有接到任何东西。(或什么代码已被迷上了它从来没有发货。)

http://archives.neohapsis.com/archives/microsoft/various/dcom/2001-q1/0160.html 从史蒂夫*斯沃茨,一个原始COM+建筑师:

COINIT_SPEED_OVER_MEMORY忽略COM.

其他提示

的标志之一可以通过向CoInitializeEx是COINIT_SPEED_OVER_MEMORY,这是有记录为: https://msdn.microsoft.com/en-us/library/ms678505(v=VS。85).aspx

COINIT_SPEED_OVER_MEMORY:贸易存储器的速度。该文件已经是模糊的,因为它没有说哪个方向的贸易正在取得进展。你是减少存储器的增加速度,或增加存储器通过减少的速度?实际上,它既不是:如果你通过这个标志,那么你是指示COM消耗更多的存储器在试图减少占用,在假设你跑得更快通过执行减少周期。1

该请求是每个进程的一种方式过渡。一旦有人在任何地方的进程将COM入速度过存储器模式,标志住宿设和保持设置,直到该进程中退出。

当你应该启用这个模式?没关系,因为就我所知,没有代码,在任何地方COM改变其行为的基于进程是否已经被放置到这种模式!它看起来像国旗加入时DCOM介绍,但是它从来没有接到任何东西。(或什么代码已被迷上了它从来没有发货。)

1如你所知,消耗更多的存储器不是一个能保证你会实际运行得更快,因为更高的存储器的使用增加了机会,你需要什么会采取L1缓近或页面的故障,这将成本高昂的代价在等待时间(虽然不是在占用).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top