6

グラフィカル ノード ネットワークを表示する wxWidget の作成を検討しているため、多くの描画操作を行います。Python を使用すると処理が遅くなることはわかっていますが、動作させて、機能するようになったら後で移植したいと考えています。理想的には、パフォーマンス ヒットがそれほど大きくない場合は、簡単に更新できるようにコードベースを Python のままにしておくことをお勧めします。

私が疑問に思っているのは、物事がどれだけ遅くなると予想すべきかということです。これは漠然としていて、終わりがないことはわかっていますが、何が期待できるかという感覚が必要なだけです。500個の円を描くと行き詰まりますか? それはまったく目立つでしょうか?あなたの経験は何ですか?

4

3 に答える 3

1

IMHO、主なボトルネックは、ネットワーク グラフを表すために使用するデータ構造です。システム内のさまざまなコンポーネント バージョン間の依存関係を追跡するための同様のアプリケーションをコーディングしましたが、グラフィックスは私が心配しなければならなかった最後のことであり、確かに 500 以上のオブジェクトを描画し、そのうちのいくつかをグラデーションで塗りつぶしていました!

行き詰まっている場合は、PyGameを使用して描画をチェックアウトする必要があります。

于 2008-12-18T22:41:00.093 に答える
1

描画には、PyGame が提案されています。私は PyGame が好きです。簡単に操作でき、うまく機能します。他の選択肢は、Pyglet、または PyOpenGL を使用することです (ほとんどの場合、wx ウィジェットにも描画できますが、私は行ったことはありません)。

個人的には、最もよく知っているライブラリを使用して Python で実行し (私の場合は pygtk と cairo を使用します)、問題が発生した場合にのみパフォーマンスを心配します。次に、ボトルネックをプロファイルして最適化します。そのPythonコードは遅いので、代わりにCで実行するビットを知っています。

于 2008-12-19T10:00:42.313 に答える
1

私の経験では、単純な方法 (各オブジェクトを画面に描画する) を行うと、Python では C++ よりも早く行き詰まります。ただし、Python を使用すると、巧妙な方法 (たとえば、PseudoDCを参照) でコーディングする方がはるかに迅速で苦痛が少なくなり、単純な C++ 実装が水から吹き飛ばされます。

私はスラジュに同意します。その上で、あきらめる便利な wxPython のものと比較して、アプリがどの程度グラフィックスを多用するかによっては、PyGame が良い選択かもしれません。

于 2008-12-19T00:18:02.490 に答える