パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

MicrosoftのEdge開発チームがブラウザの省エネ性能ベンチマーク結果を公開、Edgeがもっとも省エネ性能が高いという結果」記事へのコメント

  • by Anonymous Coward on 2018年12月31日 21時59分 (#3542108)

    原因はなんだろう 部門より

    フレームレート説
    https://egg.5ch.net/test/read.cgi/software/1544784724/358 [5ch.net]
    https://egg.5ch.net/test/read.cgi/software/1544784724/361 [5ch.net]

    • by Anonymous Coward on 2019年01月01日 0時14分 (#3542142)

      canvas 2dでゲームを作ったことがありますが、
      EdgeだとなぜかsetIntervalで16ms間隔で回してもマウスを動かさないと24~25回/秒まで頻度が落ちてたりしました。
      ChromeやFirefoxだとちゃんと60fps前後で動作していたのですが。

      親コメント
      • by hjmhjm (39921) on 2019年01月01日 12時14分 (#3542237)

        Edgeのほうが省電力的で、よさそうやなあ。w

        親コメント
      • by Anonymous Coward

        Windowsに限った話ではないけれど、タイマー類は使用するAPIとハードウェア構成(に対応するOS側の構成?)に依存して大きく精度が異なります。
        古い記事ですが こういうの [www.emit.jp]とかが昔からあります。
        WindowsのSetTimerAPI(周期処理に割と使われる、ウィンドウメッセージ依存)やSleepAPIで画面描写回すとは環境依存で結構違うfpsになったはず。
        そしてSleep系統の場合ウィンドウメッセージで起きるように作ることも少なくないです。
        ウィンドウメッセージで起き

        • by Anonymous Coward

          OSの制限とブラウザ側のsetIntervalの実装を混同して何が言いたいんだ?
          元コメにオフトピックなんて付けてる暇が合ったら、この明後日のコメントをマイナスしたらいいのに。

          >EdgeだとなぜかsetIntervalで16ms間隔で回してもマウスを動かさないと24~25回/秒まで頻度が落ちてたりしました。

          setIntervalは精度も確度も保証していなくて、指定時間以下にはならないというだけではある。
          でも、普通はレンダリング等の負荷が大きい時に遅延が増えても、負荷が小さい時には頑張って精度出してほしいよねぇ。
          それなのにマウス動かさないというアイドル状態を検知してサボってるってことなのかな。

          • by Anonymous Coward

            OSの制限とブラウザ側のsetIntervalの実装を混同して何が言いたいんだ?
            元コメにオフトピックなんて付けてる暇が合ったら、この明後日のコメントをマイナスしたらいいのに。

            /quote

            別ACだけど、ブラウザも単なるアプリケーションだからOSの制約は越えられない。という点でアリな解説では。
            ChromeがOSの設定を書き換える自分本意な挙動をするのは有名でしょ?

            • by Anonymous Coward

              chromeは起動しただけでtimeBeginPeriod(1)を叩いて無駄に負荷を掛けるとかあったなぁ
              年単位で放置されていた上に、直したり再発したりで酷かった覚えがあるわ

            • by Anonymous Coward

              ChromeがsetIntervalをどう実装するかならともかく、ChromeがOSのタイマーの設定を書き換えるなら大変なことだと思うんだけど。
              本当にそれ有名な話なの?

              • by Anonymous Coward

                10年以上前から知られてる [blogspot.com]超有名な事象ですけど。
                Chrome以外のゲームアプリとかビジネスアプリにすら影響出るんで。
                タイマ精度が上がるだけなんで省電力性能以外は大して実害がない事は多いですけどね。

                何度かバッテリー駆動時はタイマ精度を上げないパッチを適用してるけど、

              • by Anonymous Coward

                timeBeginPeriodはアプリケーションがOSに対して自分が必要なタイマー精度を要求(設定)するAPIで
                OSのタイマーの設定を変えるというよりOSが各アプリケーションの要求精度を確認して適宜動作を変える

                OSのタイマーは全アプリケーションの要求するタイマー精度のうち最も高精度な精度を満たすように動作する
                だからゲームやらでタイマー精度が必要なのにこのAPIを呼んでないアプリの精度を上げるために
                WMP等のtimeBeginPeriodするアプリを裏で起動しておくと結果的に性能が上がるなんて小技もある

              • by Anonymous Coward

                なるほど、何もしてなくても常時timeBeginPeriod(1)を設定してるなら問題ですね。
                ただ、今回のテストはHTML5動画再生らしいので、他のブラウザでも動画再生時には音ズレしないだけの数字に設定してると思う。

          • by Anonymous Coward

            > OSの制限とブラウザ側のsetIntervalの実装を混同して何が言いたいんだ?
            ブラウザが使用するタイマーAPIとその利用方法にガッツリ依存する話なんだから関係するに決まってるだろ。
            ブラウザのsetIntervalがOSのAPIから独立したタイマーをOSから独立して実装しているとでも言うのか君は。

            > それなのにマウス動かさないというアイドル状態を検知してサボってるってことなのかな。
            批判する前にちゃんと読んでたらこんな頓珍漢なこと言わなくて済んだのに・・・

            40ms間隔のタイマー割り込みを使うAPIで15ms待機を掛けても40ms間隔でしか起きれない。
            けれどシングルスレッドでよくある実装にするとマウスなどのイベントの間隔でも起きる。
            それだけの話だよ。

            • by Anonymous Coward

              >EdgeだとなぜかsetIntervalで16ms間隔で回しても
              文字読めてる?

              • by Anonymous Coward

                例示に使う数値の好みの違いが何かの反論になるんスか?

      • by Anonymous Coward

        そういや省電力設定にJSタイマーだったかの設定有りましたけど影響するのかなぁ?

    • by Anonymous Coward

      Edgeの30fpsはネット動画に良く有る約30pの動画をフルスクリーン再生してるなら適切な処置だよね。
      Chromeの60fpsもディスプレイの標準的なリフレッシュレートと考えれば適切。
      Firefoxはなんで75fpsと無駄に処理を回してるのだろう。

      • by Anonymous Coward

        ハードウエア同士のタイミングは全く一緒にはなりませんから、微妙なタイミングずれが蓄積しある程度まとまったところで解消される現象が起きて、それが人間には不自然な動き、チラツキとして感じられるのでは。

        75FPSであればそのずれは15FPS分と大きいので、解消も頻繁になる分人間が感じにくくなる。

        とは言え、元の動画のフレームレートがどれだけだったのか、原典を見ても書いてないような。ハードウエアの設定は結構細かく書いているんですけどね。Edgeが有利になるような動画をあえて選んでいるとかはないと思いますが、検証できないのではレポートとして問題があると思います。

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

処理中...