Windows10におけるCPU時間割り当てに関する質問です。
ちょっと長くなりますが、なるべく詳しく状況説明したいのでお許しください。
旧環境:Core i7-6700(HT有効で論理プロセッサは8個)、Windows7 Pro(64bit)、Excel2010(32bit)
新環境:Core i9-9900K(HT有効で論理プロセッサは16個)、Windows10 Home?(64bit)、Excel2010(32bit)
旧環境にて一回の実行で約1HかかるExcelマクロを1本起動し、タスクマネージャでCPU使用率を確認すると、論理プロセッサ約1個分をフルに使った感じで12~13%になります。そのままさらに別プロセスで次々とExcelを立ち上げては同じマクロを起動するという操作を繰り返すとCPU使用率はリニアに増加して行き、論理プロセッサ数と同じ8本のマクロを同時実行した状態にするとCPU使用率は約100%となり、この時点でCPUの能力をほぼ使い切ります。⇒1本実行と8本実行との間で、1本当りのTATの違いは殆どありません。
次に新環境の話です。↑と同じ様に次々と別プロセスでExcelを立ち上げては同じマクロを起動、という操作を繰り返して行くと、最初の内はCPU使用率は旧環境と同様にリニアに増加して行くのですが、CPU使用率が40%に達した辺りで頭打ちになり、それ以降Excelプロセス&マクロ実行をどれだけ増してもCPU使用率が上がらなくなります。結果、プロセスを増やせば増やすほど、1本のプロセスに割り当てられるCPU時間が減ることになるため、マクロ1本当りのTATはどんどん増加してしまうことになります。
ちなみにExcelだけでなく、他のプログラム(例えばIE)を同時に立ち上げるとCPU使用率が80%程度まで上がることもあるようなので、何でもかんでもCPU使用率を40%辺りまでに縛っている様子もありません。
実行パラメータを少しずつ変えて同時に何本も動かすことでトータルのパフォーマンス向上を狙っています。新環境においても旧環境と同様、15~16本まではCPU使用率がリニアに増加し、1本当りのTATも殆ど変らず、CPUがパワフルになった分だけ、より多くの結果がより早く得られると楽しみにしていたのですが、実際にはCPUの能力を半分も使えず、お金を掛けた割には宝の持ち腐れ感満載で、非常に困っております。
前置きが長くなりました。
上記新旧の環境で違うのはH/WとOSという事になりますが、自分なりに最も怪しいと考えたのはWindowsです。
もしかして、Windows10になってから、同じLMのプロセスに割り当てるCPU時間の上限を規定するような制御がされているのかな?と思ったのですが、実際のところどうなのでしょうか?
また上記問題を解決し、Excelを別プロセス複数起動+マクロ実行のみでCPUの能力を100%近く発揮できるような設定変更(例えばレジストリを触るとか)はありますでしょうか?
困っていると書きましたが、それも通り越して今では真実が知りたくてモヤモヤしており、正直非常に気持ち悪いです。助けてください。よろしくお願い致します。