1

編集:

最初に追加するのを忘れましたが、本当に大きな要件は、これが.exeとして提供可能である必要があるということです。現在、PyInstallerを使用してすべてを実行可能ファイルにまとめていますが、複数のプログラミング言語を使用し始めたときに、すべてがどのように組み合わされるのかわかりません。


PythonとwxWidgetsを使用して作成した小さなGUIがあります。プログラムの真のコアは、CPUとネットワークを集中的に使用するため、マルチプロセッシングモジュールを使用して新しいプロセスを生成します。そうすれば、GUIは応答性を維持し、2番目のプロセスはそれ自体のメモリ/プロセッサスペースで自由に実行できます。Multiprocess.Queue最後に、GUI、それ自体、およびプロセス間の通信を処理するために、スレッドを使用します。

ここに画像の説明を入力してください

さて、問題は、Pythonが主な機能の処理を遅くするためのほんの少しのタッチであるということです。そのため、Javaでビルドのプロトタイプをすばやく作成したところ、速度が約60%向上しました。したがって、コアロジックについては、すべてをJavaに移植したいと思います。

ただし、PythonとWXを使用してGuiに大量の作業を投入したので、Javaでその側面を書き直したくありません。それで、私の質問は、これらの2つの別々のシステムをどのように組み合わせるのかということです。

通信の範囲は、ほとんどの場合、開始コマンドと停止コマンドを発行します。残りは、ユーザーに現在作業していることを知らせるためだけにGUIにフィードバックされる小さな更新です。

うまくいけば、それはすべて理にかなっています!

4

1 に答える 1

0

最初に追加するのを忘れましたが、本当に大きな要件は、これが.exeとして提供可能である必要があるということです。

そうですね、それでJavaがほぼ除外されると思います。一部のJavaプログラムを.exeファイルに変換することは可能ですが、多くの点で問題があります...

CまたはC++で本当に高速である必要があるものをコーディングする方が良いと思います。別の実行可能ファイルにするか、(パフォーマンスを向上させるために)ネイティブライブラリメカニズムの1つを使用してアクセスすることができます。http://wiki.python.org/moin/IntegratingPythonWithOtherLanguagesを参照してください


ここで実際に対処しようとしている問題がGUIの応答性である場合は、Pythonスレッドを使用して同じことを実行できるはずです...コーディングの労力が少なくて済みます。

于 2013-01-27T04:14:08.893 に答える