5

ブースト python を実験しているプロジェクトに取り組んでいます。私のpythonインターフェースを整理する方法を調べていると、boost pythonにはパフォーマンスの問題があると断言するコメントに出くわしました。そのパフォーマンスに実際の懸念はありますか?

この場合、私は大規模なプロジェクトで作業しており、その一部を Python に公開したいと考えています。ブースト python を使用すると、既に持っているクラスを簡単に公開できることがわかりました。だから私はクラスを公開するboost pythonの方法に固執することを好みます。それはとても簡単だからです。誰かが使いやすく高性能な代替手段を持っていない限り.

4

2 に答える 2

2

大規模なコンピュータービジョンライブラリを他の分野の研究者向けに高度に構成可能なソフトウェアパッケージに統合するために、boost::pythonを使用しています。知るまで、懸念や問題に遭遇することはありませんでした。ただし、最近は比較テストを行っていません。

于 2012-09-05T15:30:45.640 に答える
2

ユースケースで、Python と C++ の間でタイトなループで多くの呼び出しを行ったり来たりする必要がある場合、Boost.Python は、少なくとも Python C-API を直接使用する手作業で作成されたラッパーと比較して、パフォーマンスの問題になる可能性があります。SWIG のような同様にユーザーフレンドリーなものよりもパフォーマンスが悪いかどうかを推測するのははるかに困難です。

しかし、最大のパフォーマンスの問題は、そのようなやり取りを回避できるかどうかです。使用するライブラリやラッパー ツールに関係なく、C++/Python の障壁を繰り返し越えることを回避できる API は、一般的に常にそれよりも優れたパフォーマンスを発揮します。ほとんどの場合、これはループを Python から C++ に移動し、Python コールバックを回避し、特にそれらのループ内で Python から C++ への型変換を回避することを意味します。

于 2012-09-06T01:30:14.603 に答える