1

一部の C++ 呼び出し用に作成された Python API をいくつか試してみましたが、パフォーマンスの低下は見られません。実際、C++ だけで書かれた同等のアプリケーションは、少し遅い/遅いと思います。

特に、私はC++ でPysideといくつかの QT アプリケーションを試していました。

GUI が動的バインディングを適切にサポートする言語を好むことはわかっていますが、Python の内部についてはあまり知りません。

C++ プログラム内で Python API を提供した場合、費用はいくらになりますか? もう1つの間接?

PS
Python は、クロスプラットフォーム開発用のネイティブ ウィンドウ フレームワークを提供していますか?

4

1 に答える 1

5

反対票を投じられる危険を承知で、私は非常に大雑把でやや主観的な仮説を提示します。

QT は非常に汎用的ですが、非常に高速な GUI API を正確に提供するわけではありません。その抽象化のレベルにはかなりのコストがかかります。ウィジェットごと、レイアウトごとなどのヒープ割り当てについて話しています。QListWidget と、QListWidgetItem 自体が個別に割り当てられたかなり複雑なオブジェクトであるという事実を見てください。以前、開発者のコ​​ードをプロファイリングする必要がありました。ロジックが遅いと疑われていましたが、操作にかかった 6 秒のほぼすべてが、何千ものリスト エントリを含む QListWidget の作成に費やされていることがわかりました。これは C++ でした。

あなたのコードと QT の使用法を見ずに、これについての私の考えは、QT GUI の全体的なオーバーヘッドにより、C++ と Python のような言語の違いは無視できるものになるということです。

さて、それほど議論の余地のないことは、Python を介して QT を使用することの生産性は、前処理されたシグナルやスロットなどで MOC を処理する必要がある C++ で使用するよりも劇的に高いということです。ある言語と別の言語で GUI フレームワークを使用した場合のパフォーマンスの違い。

PS Python は、クロスプラットフォーム開発用のネイティブ ウィンドウ フレームワークを提供していますか?

http://wiki.python.org/moin/GuiProgramming

于 2012-10-01T04:05:34.087 に答える