实现IObjectControl,用线程池。

解决方案 »

  1.   

    1.我建议首先在task manager中检查CPU是被哪个进程吃掉的。 dllhost.exe,iis.exe,还是其它进程,从而确认问题出在哪里。2.参照下面这篇文章看看你的设计上有没有改进的地方:
    COM+ and Windows 2000: Ten Tips and Tricks for Maximizing COM+ Performance
    http://msdn.microsoft.com/msdnmag/issues/1200/comtips/comtips.asp3. 然后检查一下程序设计逻辑是否有漏洞,我曾经遇到客户设计了导致死循环的代码。另外检查你的程序是否有很耗CPU的操作,比如频繁读写硬盘等等IObjectControl只是降低object activation/deactivation的开销,如果你的COM对象的初始化很耗CPU,你可以考虑使用object pooling,但使用object pooling 的对象有很多严格的限制,关于这方面的文档你可以查看MSDN。增加线程也不一定有效,因为那将带来线程切换的开销,使得本已经不够用的CPU要额外分摊到线程的切换上。另外COM+可以根据客户的数量动态的增加线程池。如果你能post出更多的程序设计上的信息,我们会提供更多的分析和帮助。- 微软全球技术中心 VC技术支持 本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款 
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。 
    为了为您创建更好的讨论环境,请参加我们的用户满意度调查 
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。