none
Windows7とWindows8で処理速度が異なる?? RRS feed

  • 質問

  • XAML +VB.NETで開発をしています。

    画面にラジオボタンを3つ貼り付け、

    値の変更に応じて、処理を行う関数を分岐させているのですが、

    Windows7上のPCだと、なんの問題もなく、1秒位で処理が進むのですが

    Windows8上で実行すると、画面が固まり、応答なしの状態になります。

    メッセージボックスを配置してデバッグしてみても、関数に入る前で固まっているようです。

    両方のPCともそんなにスペックが悪いわけではありません。

    Windows8上で動かす上で開発の際に気をつける事が何かあるのでしょうか?

    ちなみに環境は下記の通りです。

    Win7・・・8G 64Bit Core i5

    Win8・・・4G  64Bit Core i5

    2014年12月10日 12:17

すべての返信

  • とりあえずパッと思い付くのは、ビデオのドライバーが最新かどうかですね・・・。ただ、最新が必ずしも大丈夫ということではないようですが・・・


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2014年12月10日 13:16
    モデレータ
  • Windows Updateの適用状況は同じですか?

    .NET Framework のパッチ適用状況によって、初期起動速度が明らかに変るという状況になったことが有ります。

    ビルド構成がもしAny CPUだったらx86でコンパイルすると変化があったりしませんか?

    2014年12月11日 0:27

  • 特段気をつけるべき事はありません。

    強いて上げるなら、Windows7の標準UIは透過処理などを多用した比較的GUIへの負荷が高い物であるのに対して、Windows8移行の標準UIはタブレットなどでの利用を考慮したGUIやCPUへの負荷の低い物になっています。多くの場合はWindows8上での動作の方が軽快でしょう。

    提供されている情報からは、何故Windows8で動作した方が遅いのかその原因までは判断出来ませんが、ひとつだけアドバイスできます。貴方はほぼ同じスペックとおっしゃっていますが、私にはそう思えません。メモリの容量が2倍も違います。もし多くのメモリを必要とするようなアプリケーションであれば、速度は2倍どころか10倍~1000倍も差がでるはずです。メモリ容量以外の差は提示されていませんが、CPUにしても一言Corei5といってもクロックだけで2.4Ghz~3.9Ghzもの差があります。本当にほぼ同じ性能のパソコンなんですか?


    甕星

    2014年12月11日 2:09
  • i5 とおっしゃっていますが、実はWindows7はデスクトップでWindows8はノートパソコンなのではありませんか?

    もし、こういったケースの場合型種類は同じi5でも性能は2倍ほど違うことになります。

    また、デバッグ作業の際に他のことも並行してやっていたりする(ブラウザを開いているなど)と、メモリ4GBであると不足する可能性も確かにあります。

    タスクマネージャのパフォーマンスを常時確認し、空きメモリが100MB以下である場合、体感上の速度が遅くなっているように思います。開発環境である、ということも考慮してメモリの増設が必要かもしれません

    2014年12月11日 22:25
  • 遅いwin8のPCにvisual studioをインストールし、visual studio上でデバッグするのがいい方法だと思います。

    2014年12月12日 0:10
  • 同じ環境であればVisualStudioがWindos8に対応している環境であれば、特に気をつける必要はないはずです。

    質問者さんの記載しているかぎり内容だと特に重い処理は行っていなそうなので

    マシンスペックは問題無いと思います。

    Update状況や使用しているVisualStudioのバージョンはどのようになっていますか?

    XAML+VB.NETと言ってもVS2008でも開発可能なので、Updateを行っていない場合、動かない可能性も考えられますよ。


    2014年12月12日 2:38
  • 回答ありがとうございます。

    確認したところ、x86でした。

    Windows Updateも確認して合わせてみます。

    情報ありがとうございます

    2014年12月12日 3:27
  • ビデオのドライバーですか、確認した事無かったので盲点でした

    情報ありがとうございます。

    2014年12月12日 3:28
  • おっしゃる通り、Win7がデスクトップで、Win8がノートでした。

    並行作業はむしろWin7の端末でやっているのですが、遅いのはWin8なんです

    タスクマネージャで確認しても、メモリ消費量が極端に増えたりしている訳では無いのですが、

    応答なしになるので、WIN8だと想定していないイベントが走る場合があるのかと怪しんでいたのですが

    同じi5でも性能が倍変わるという事なら、そちらが原因なのかもしれませんね。

    ありがとうございます


    2014年12月12日 3:33
  • インストールできれば一番なのですが、借り物なので

    不用意にあまり入れれないんですが、許可がもらえれば確認してみます

    2014年12月12日 3:35
  • DBやネットワークを介している訳でもなく

    UIを変更しているだけなので、私も同じ認識なのですが

    VisualStudioのバージョンは Professional 2012 のVer 11.0.61030.00 Update 4 でした

    2014年12月12日 3:39
  • 計測するとしたら、dotTraceの試用版を使うって手も有りますよ。

    リモートトレース機能があるので、確認される側には追加インストールは不要です。

    下記の記事はdotMemoryですが、dotTraceでも同様にリモートトレース機能が利用できます。

    http://karuakun.wordpress.com/2014/04/25/dotmemory-%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AE%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%BC




    • 編集済み かるあ 2014年12月12日 4:28
    2014年12月12日 4:25
  • 値の変更に応じて、処理を行う関数を分岐させているのですが、

    Windows7上のPCだと、なんの問題もなく、1秒位で処理が進むのですが

    Windows8上で実行すると、画面が固まり、応答なしの状態になります。

    メッセージボックスを配置してデバッグしてみても、関数に入る前で固まっているようです。

    ちょっと質問です。

    画面が固まるとか応答なしになるという表現ですが、パフォーマンスが違うのではなくて、そのまま戻ってこないという意味だったりするでしょうか?

    あるいは、何秒か待ったら処理は続行されていくのでしょうか?

    ラジオボタンの変更というのは、普通に手で操作して、変更されたときに処理が自動で走る、という感じですかね?

    あと、Windows7では1秒程度ということですが、やっているのはどんな処理でしょうか?(計算処理?ファイル操作?ネットワークアクセス?)

    それと、スレッドを使って何かしているということはあるでしょうか?

    2014年12月12日 8:02
  • 詳細に質問ありがとうございます。

    症状はWin7端末だと1秒程度かかる処理が、Win8だと画面が固まり、応答無しとなります。1分程度待っていると

    応答無しが解除され、元に戻ります。

    ラジオボタンは同じGroupで3種類あり(Hi、Middle、Low)チェックを変更した時点で、対象となるデータを画面に表示します。

    スレッドは使っていません。

    やっている事は計算処理です。

    事前にデータベースから取得したリストのデータ(100件~150件程度)のデータをチェックの内容で抽出し、

    該当データだけ再表示するという処理です。

    Canvasの子要素を一旦クリアし、該当データだけで分布図を作成して子要素としてAddするといった感じで使っています。

    2014年12月12日 10:16
  • もう、解決されたでしょうか?

    ちょっと気になったのですが、セキュリティソフトの影響は無いでしょうか?
    CPUもメモリの余裕があるのに、遅くなった、、、と思ったら、セキュリティソフトがファイルの全スキャンを行っていたという事がありました。パターンファイルの更新後に、自動で行う設定らしく、大分悩みました。 (ログ見て分かりました)
    その都度、ウィルスチェックで問合せを行っているとか? その可能性も考慮された方が、良いかと思います。上記のやり取りから、確認できませんでしたので。

    また、てんこ盛りPCの場合、64bit 4Gメモリはどうなのでしょうか? 質問者さんのがその可能性は低いと思いましたが、ちょっと気になります。ノートPCは、メインメモリから、グラフィック用メモリを確保する事が多いのでその分、使えるメモリは減りますね。
    そしてWindowsは、メモリが余っていても勝手にスワップする事もあるようです。  ただ、上記のように遅くなる原因とは考えにくいとは思いますが。

    2014年12月14日 15:17
  • 非常に時間がかかるようになるがハングアップではないということですね。

    問題の現象は1分程度続いているということなので、まずはタスクマネージャなど簡単な方法で構いませんから、実行中の対象プロセスのCPU使用率がどうなっているか見てください。

    スレッドを使っていない場合、通常は100%割る論理コア数の%で、目いっぱいの使用率です。
    2コア4スレッド(ハイパースレッディング)CPUなら、25%で目いっぱいぶん回しています。

    逆に、このパーセントにまったく満たないなら、別の理由で待ちが発生している可能性が高くなります。

    また、同じタイミングで、他のプロセスのCPU使用率が上がっていないかも見てください。たとえばウィルススキャンのプロセスが目いっぱい動いているなど。

    ※デスクトップでの実行時にはどうなっているかも比較してみるとよいです。
     1秒程度だとタスクマネージャなどでは難しいかもしれませんが。

    それから、実行中にログやデバッグ出力等を出して、計算処理と画面プロット処理などの、どこでどの程度時間がかかっているかを確認してください。

    どちらかというと計算よりも、画面へのプロットが怪しい気がしますが。

    • 編集済み なちゃ 2014年12月15日 2:43
    2014年12月15日 2:40
  • ところで、Windows7ではAeroを切っていたりとかそういうことってあります?

    2014年12月15日 3:04