服务器2016(HOST)中的虚拟服务器2016(VM1)主机, 给定了从主机到VM1的所有24个处理器,并且对资源没有处理器限制(可以占用100%)。
使用24个测试过程运行24个实例,这些过程仅执行字符串操作:CPU增长到大约100%。
但运行一个程序的24个实例,该程序最初只会创建一个winword实例
app=CreateObject("Winword.Application");
docs=app.Documents;
然后无限循环地加载和释放文档
_doc= _docs.Open(
FileName:= _src_File,
ConfirmConversions:= false,
ReadOnly:= True,
AddToRecentFiles:= false
)
_doc.Saved= true
_doc.Close(
SaveChanges:= false,
RouteDocument:= false
)
那么总的最大CPU使用率不会超过20%。
在资源监视器中,CPU最高频率约为80%(在其他测试程序中,最高频率为105%)。
在“光盘”选项卡中,队列的长度约为0.2,而不是更多。但是我还对所有C-Partition完全在RAM光盘中进行了测试,但是效果很小。
测试文档(在每个过程中均使用不同的名称复制)为31kB,并且只有文本,没有链接,没有图像。在Winword中,所有加载项均被禁用。 在每个线程中加载文档的平均时间约为3秒。
(如果通过24个实例的多处理或多线程进行操作,则不会有任何区别)
请问,为什么我不能加快20%以上的CPU使用率? Winword有什么作用?看来winword在80%的时间内都处于睡眠状态。 32GB的RAM,RAM磁盘,所有CPU,HOST或VM1上没有其他运行的应用程序,没有防病毒扫描程序-请问瓶颈在哪里?