次の方法で共有

Windows7からWindows10へアップグレードした後、同じプログラムでの計算速度に差が出る

Anonymous
2020-02-17T16:40:24+00:00

どちらで尋ねれば良いのか分からないため、こちらで質問させていただきます。

Windowsアップグレード後に計算速度が遅くなってしまったという現象についてです。

先日、オフラインで使用していたWindows7 SP1のPC(CPU:Core i7 3770、MEM:8GB)をWindows10 1909へアップグレードしました。

そのPCでは以前からVisualStudio2019にて逐次実行する計算プログラムを作成しており、Windows7環境時ではその計算を12[ms]毎に14回か15回で安定して繰り返し行えていました。

ところがWindows10へアップグレードした後には、その計算回数が12[ms]毎に9回から14回の間で不規則に振動するようになってしまいました。

平均の計算回数も下がりましたが、さらに分散も大きくなっている状態です。

情報が少なくて申し訳ありませんが、どなたか思い当たる節はございませんでしょうか。

以下、現状個人的に仮説として想像しているものです。

①:アップグレードしたが故の不具合

②:Windows10は軽量なOSというイメージがありましたが、実はWindows7よりも処理が多く、CPUの処理に空きがない

③:Windows7 とWindows10 とでCPUの利用の仕方が変わった

④:Intel CPU のMeltdown等不具合へのパッチの影響

家庭向け Windows | Windows 10 | パフォーマンスとシステムの失敗

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

7 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2020-02-18T01:42:54+00:00

    VisualStudioでの再ビルドなどは行っていないのですね?

    ぱっと思いつく要因

    ・タイマーの精度

     「逐次実行」とのことですが、タイマーを使った処理が含まれますか?

     タイマー処理の精度が環境/他のソフトの影響で変化することはあります。

     (e.g. Sleep(1) で実際に待機する時間が異なる、など)

     言語がわかりませんが、ご自身のソフトの中でタイマ分解能を指定したり

     高精度タイマーの利用に切り替えたりすると変化があるかもしれません。

     (そもそも1秒間に14~15回というのはどうやって測定したのでしょうか?)

    ・ウイルス対策ソフト

     処理の中でファイルのI/Oがあるのであれば、WindowsDefenderなど

     ウイルス対策ソフトの影響があるかもしれません。

     Windows 7の頃には何を使っていたのでしょうか?

    ・他の処理による速度低下(CPU・メモリ)

     他の処理によるCPU負荷はありませんか?

     また、1803からWindows10の基本的なメモリの消費量が増えています。

     メモリが不足していませんか?

     不要なアプリ、タスクを全て削除/停止してみてください。

    この回答は役に立ちましたか?

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2020-02-18T03:01:18+00:00

    タイマ精度に関しては、Microsoft社から出ている "Timers, Timer Resolution, and Development of Efficient Code"(docx) が詳しいです。

    http://download.microsoft.com/download/3/0/2/3027D574-C433-412A-A8B6-5E0A75D5B237/Timer-Resolution.docx

    Thread Pool Timerを使ったり、マルチメディアタイマーを使ったりする方法もありますが、基本的に20ms未満の精度は期待しないでください。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2020-02-18T02:13:15+00:00

    ご返信ありがとうございます。

    >タイマーの精度

    タイマーの精度という点は思い至りませんでした。

    現在はC++を使用しており、計算を繰り返して1周するごとに記録用の変数をインクリメントして回数をチェックしています。また、clock関数で測った一定の時間(この例でいうと12[ms] )が経過するとそこまでの回数(この例でいうと14[回] )を配列に格納し、記録用の変数をリセットしてまた計算を開始する...という処理をタイマーイベントで繰り返し実行しています。

    高精度タイマーの使用も検討してみます。ありがとうございます。

    >ウイルス対策ソフト

    ウイルス対策ソフトはWindows7でもWindows10でもWindowsに付属のもの以外は導入していません。

    基本的にオフラインで使用するPCなので、WindowsDiffenderを停止させてしまうのも手なのでしょうか?

    >他の処理による速度低下

    他にプログラムは実行していませんし、タスクマネージャーで見る限りメモリにも余裕はありそうなのですが、なにかバックグラウンドで動いているかもしれないということですね?

    ありがとうございます。これもチェックしてみます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2020-02-18T00:32:02+00:00

    ご返信ありがとうございます。

    ご指摘のライセンスについてはもちろん正規版を入手し利用しております。

    よろしくお願い致します。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2020-02-17T21:43:19+00:00

    > 先日、オフラインで使用していたWindows7 SP1のPC(CPU:Core i7 3770、MEM:8GB)をWindows10 1909へアップグレード

    ・確認ですが、Windows 10への無償Upgrade期間内(2016年7月29日に終了)に Windows 7→Windows 10 へのUpgrade したことがありますか?

    無償Upgrade期間内にWindows 10へのUpgrade をしていない場合には Windows 10のライセンスの購入が必要です。

    【 Windows 10 のダウンロード 】

     https://www.microsoft.com/ja-jp/software-download/windows10

    上記URLに 「開始するには、Windows 10 をインストールするためのライセンスが必要」 とあります。

    Yamamoto017さんの場合 Windows 10への無償Upgrade期間内に実行したことがなく、かつWindows 10のライセンスを持たずに Upgradeを実行して成功してもライセンス違反、つまり不正使用と言うことになります。

    Windows 10のライセンス購入が必要で2万円程度かかります。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません