GQLWidgetを使用してOpenGLを使用して2つのアプリケーションでこれを検証しました。 screenupdateが非常に頻繁に行われたり、30fpsとか、解像度が高い場合は、コアの1つのCPU使用量が急増します。私はこの問題を解決し、Windows上で発生するかどうかを検証する方法に関する解決策を探しています。Qt OpenGLを使用しているCPUの使用率
0
A
答えて
6
私の経験では、QGLWidget自体はGLとウィンドウシステムの非常に効率的な薄いラッパーです。 CPU使用率が高い場合は、OpenGLアプリを実装する他の方法を使ってもCPU使用率が高い可能性があります。
あなたはOpenGLを使用して、高いCPU使用率を持っている場合、チャンスはある次のいずれか
- あなたはソフトウェアのOpenGLの実装(すなわちメサ)にフォールバックしています。 例えば、グラフィックデバイス ドライバをインストールしないと、Debianはこれを行います。
- あなたは古い学校の即時モードOpenGLを使用しています:glBegin、... vertices ...、glEnd。代わりにVBOを入手してください。
表示解像度を要因と呼ぶという事実は、以前の問題を示唆しています。
1
プロファイラを取得し、コードをプロファイルし、ボトルネックがどこにあるかを確認する必要があります。あなたのプログラムはCPU資源を消費するので(GPUではなく)、これはかなり簡単になるはずです。 「AQTime 7 Standard」(ウィンドウズ)は現在、無料でご利用いただけます。あるいは、あなたのツールキット/プラットフォームによっては、gprofを使うこともできます。
非常に可能性の高いシナリオ(ソフトウェアのOpenGLフォールバック以外)は、動的メモリ割り当てを頻繁に使用するか、デバッグビルドを実行することです。フレームごとに100000以上のポリゴンがある場合、イミディエイトモードが問題になる可能性があります。
0
私は、ホストCPUの使用を最小限に抑えることにひどいGL実装をいくつか見てきました。 GPUが描画中にCPUがビジー状態になる状況はたくさんあります。多くの場合、カード設定で垂直同期をオンにするだけで、アプリの描画回数が少なくなり、CPUの使用量が増えます。 残念ながら、あなたのアプリを描く頻度を制限するのではなく、これについて自分自身で行うことはほとんどありません。
関連する問題
- 1. CPU使用率が高い
- 2. 高いCPU使用率 - VB.NET
- 3. rangeOfString:高いCPU使用率
- 4. 高いCPU使用率SceneKit
- 5. CPU使用率スパイク
- 6. OperatingSystemMXBeanを使用してCPU使用率を取得する
- 7. Debian:bashを使用してCPU使用率を調べる
- 8. mysqldのパフォーマンスが高いCPU使用率とメモリ使用率
- 9. CPU使用率を100%に
- 10. PHPインスタンスのCPU使用率
- 11. トップバッチモードでのCPU使用率
- 12. CPU使用率の問題
- 13. TesseractのCPU使用率100%
- 14. pythonスクリプトのCPU使用率
- 15. MPIアプリケーションのCPU使用率
- 16. カーネルモジュールのCPU使用率
- 17. EC2インスタンスのCPU使用率
- 18. CPUの使用率とスレッド
- 19. Direct2DレンダリングのCPU使用率
- 20. Spring Boot Dropwizardを使用したCPU使用率と使用率のメトリック
- 21. Saxonライブラリを使用しているときのCPU使用率が高い
- 22. cpuコアが100%CPU使用率でスタックされている
- 23. タイルマップの使用OpenGLとSDLを使用した多くのCPU
- 24. EC2 CPU使用率対メモリ
- 25. CPU使用率低速
- 26. Hight CPU使用率.netアプリケーション
- 27. TcpreplayパラメータとCPU使用率
- 28. 低スパークストリーミングCPU使用率
- 29. AWS Elasticsearch CPU使用率スパイク
- 30. MSアクセス:100%CPU使用率
あなたはどのような種類のビデオカードを持っていますか?また、デフォルトのウィンドウサイズで「glxgears」を実行するFPSの数はいくつですか? – timday