5

私はいくつかのJava<->Perlインタラクションに取り組んでいます。PerlからJavaに情報を渡すための最良の方法を知りたいです。(ここここでPerlとJavaについての素晴らしい答え)。

たくさんのテキストとXML(XML :: Twig)があります。私は、Java Webアプリから呼び出すことになっているスクリプトで、Perlで解析しています。だから私はこれらすべての収集されたデータを持っており、Javaの特定のオブジェクト内でそれを使用するためにそれが必要です。

What could be a good strategy to send the information from Perl to Java? Is it even possible to return an object or other compatible data structure from Perl to Java?

I guess writing to a text file and reading it from Java would make all the optimization gained by using Perl meaningless.

Perlformance is an important issue here.

EDIT: From what I've seen here, maybe Inline-Java would be a good option?

4

5 に答える 5

3

JSONは、データを渡すための簡単で軽量な形式です。

Rhinoまたはツールキットに類似したものを追加して、パフォーマンスを向上させることができます(スクリプトエンジンは言うまでもありません)が、これはプロジェクトの計画がどれほど複雑かによって異なります。

于 2009-03-04T16:53:56.370 に答える
2

すでに XML を使用している場合、最良の選択肢はおそらくそれを使い続けることです。

于 2009-03-04T16:43:10.607 に答える
2

インライン::Java . 起動して実行すると、非常にうまく機能します。私は数年前、Perl Web アプリケーションがリアルタイム通信のために Java SOAP サーバーと通信するプロジェクトに取り組んでいましたが、あまりにも遅すぎました。通信に Inline::Java を使用するシステムに置き換えたところ、はるかに高速になりました。オブジェクトをやり取りするポイントを最小限に抑え、それらのオブジェクトを単純にするようにしてください (文字列、数値、および配列にこだわっています)。物事が制御不能にならないようにします。しかし、私は間違いなく改宗者です!

于 2009-03-04T18:55:05.767 に答える
0

また、XML を解析するための perl コードが Java の同等のコードよりも大幅に高速であることも奇妙に感じます。たとえそうだとしても、IPC によって発生するオーバーヘッドよりも高速になるとは想像できません。永続的な perl プロセスを使用している場合でも、おそらくソケットを介してデータを送信し、データを取得して、最終的に使用可能なものにデシリアライズする必要があります。

Java での XML 解析のパフォーマンスを改善しようとしましたか? DOM、または JDOM や castor などのサードパーティ ライブラリを使用している場合は、代わりに SAX を使用してみてください。または、XML を解析する代わりに正規表現を使用する方が高速になるかもしれません ( jwz にもかかわらず)

いずれにせよ、最初に Java コードでプロファイラーを使用して、改善できるかどうかを確認することをお勧めします。

于 2009-03-04T18:30:07.853 に答える