Rewrite CコードでJavaまたはJNIを使用?
-
03-07-2019 - |
質問
私は現在の開発プロジェクトJavaで記述された.このチームのアルゴリズムの記述のC/C++(少なくともカップル百)する必要のある法人にアプローチしている。二つのオプションを活用していJNI呼び出すコード、または書き換えアルゴリズムをすべてJava.
その結果を用いJNIで開くことができるので、全く新しい問題である理由を書き換えのすべてのコードをJavaも考えられている。ものの思いを書き換えるようで...間違っています。アルゴリズムを検証し、仕事というだけで、間違った言語です。
この状況で、JNIこの課題は簡単ですか?やが原因であることがわかってきますよ頭痛を書き換えるコードをJavaか
編#1: 関連する質問- 有用性のJNI
編集#2: ご参考-当社のJavaプロジェクトを網羅するものではありませんする携帯します。ることが除去のマイナス面のJNIるはずの削減に述します。
解決
に答えている場合、このコードするという多く、性能の事項に変換しまへJava.
により複雑な回答:
- 場合には図書館を簡単に包まれたJNIを行JNI
- 場合の試験では、C/C++コードを簡単に変換されるJavaしくはポート
私は次のように処理されます:
- 一アルゴリズム、組み込みスクリプトでは、JNI
- 同じアルゴリズムを変換するJava
- 見るのは痛い
- 場合速度事項に関してプロファイルバージョンを見るのは許容できます。
他のヒント
私の答えであり、額のカップリングであろうと、呼び出しのjavaコードの呼び出されたC/C++コードのレベルの努力に書き換えが伴うもの.場合は、Cのコードは、整数、一部の毛を計算して返します別のint.利用JNI.場合のコミュニケーションも楽しみの複合体を前後に、そのアルゴリズムと合理的に簡単に書き換え'em.の断層線は、JNI接続します。そうするためには複雑だが書面によりJNIインターフェースのコードのようにアルゴリズムコード書き換え.
場合には"アルゴリズムの"パッケージもできる自動接着剤コード、JNI?いる場合は、以下のようにリスクの誤りを何百ものコンポーネントを手動で音声リスク)をコスト独自のアルゴリズムの追加は、以下とします。
書き換え数百の部品があれば、是非教えて下リスクの高いエクスペディアをおすすめする少なくとも検討JNIります。
どのI/O要求さんのアルゴリズムに関して、残りについてお教え下さい。ばかなり緩やかに結合れのものはよくないという思いできることとしたとして独立した個別のプログラムを呼び出してサブプロセスからJavaを使用例stdio共有データはもらえますか?
と思いますので見るJNIを使用しないとして厳しいと思えるほど前にダイビングです。が重要なのはトレードオフや制限が一般JNIの作品は、見やすく活用しています。
他のいの場合はJNI:
- 複雑なネイティブコード(ボーナスポイントがそのコードはすでに実績のある非常に信頼性の高い)
- 最小限のやり取りとJavaおよびネイティブコードを極力抑えたい旅行のJNI層)
- 合理的に簡易呼び出しインターフェースのネイティブコードはもJavaればネイティブコードのニーズをレバレッジのJavaオブジェクト/法)
は日本の伝統文化ですよね可能な自動化または擬似自動化の創造JNI層のための合理的な構成のセット。うそれだけの価値がある場合のコンポーネントのラップが大きい。
のニュースJNIするようにするために使われてきますの構築、試験、このインタフェースは、例えば対応することができるでしょう記テストケースからJavaを活既存のアルゴリズムの行動や問題がある場合にはそのときは、JNI層のアルゴリズムをこれらのご信頼のネイティブ実施。
書き換えに多数のC/C++のアルゴリズムのJavaのようなリスクの高いことだと思いよJNI.ることを知らずの詳細は困難だろうが、あの微妙な違いにする技術の思想に影響を与える実際のアルゴリズムのなかに工学の努力とリスクのエラーになります。
最終的な考察は今後の生活のこれらのアルゴリズムや関連部品のセットになアルゴリズムを、以下、アラビア?どちらが強いのメンテナンスや今後の展開の理由を持つ技術のですか?例えば、あとはJavaおよびすべての新しいアルゴリズムまでJavaとウズベキスタンのほとんどの人が、チームはほとんどの作成Javaを再実装にはJavaを探し始めるより魅力的な長期にわたります。
しかしもということで、trumps一致しています。多数のネイティブ機能部品を思傾斜して始まJNI場合でもたいへの移行をJava長期にわたります。
いの是非につき真剣に検討を進めるJNI、特にがんを最小限にとどめることができ数多言語インタフェース
例えば、全体のスタックのC機能のすべての入出力がでない別のプランの一JNIラッパーには追加パラメータを指定する特定のアルゴリズムを利用します。
ご計画書における将来のプロジェクトにJavaとC/C++.思い込に続き、今弾では、ポートのコードをjava.本イベントは終了いたしました。待を悪化させるのです。JNI音魅力的なこの場合、その場合は問題があることを維持するC++のコードが全ての皆様に楽しい新しいJavaプロジェクト.
この時間Javaプロジェクトに、なぜで書くことによってJava?
のCおよびJavaは高価であり、まされたものであり、長年のデータ行がない勝利の呼びかけで、C JNI.
見JNA場として合理的な代替JNI多少の痛みを通方法にDLL/共有ライブラリからJava、反射のようです。いただけると期待してます。
もたらすために編纂ドとしてのLinux MIPSのバイナリとも解釈できるJava.合理的な速さは、少し難しい設定にしてください。見 http://nestedvm.ibex.org/
ものを使llvmバックエンドにgccをコンパイルlowlevelバイトコードで解釈されるJava.このアプローチのiPhone SDK afaik Mac OS Xで動作します。 http://llvm.org/
Readジョエルのreceintポートサー支払い下の技術的な債務"それは見ていて気分が良いものに転換し現在よりも金利息の支払の期待にその支払いされるというものです。
おそらく現象は、図書館を考える箇所です。場合に有用である複雑なってくる変で恐ろしい検討を保ちながらCっても一度ご利用パッケージしく再利用可能な、簡単に分配可能額及び理解できます。
しています。かりートを使用する、マルチスレッドのデータ構造で利用されるJava.この点はしご連絡いただC++のデータ構造です。
まで実現できる書きこれらのアルゴリズムが良く使用に心技術は、多型アダプターのパターンです。
いすに座り、C/C++のコードだと考えたいと頑張るのです。すると考えていて、好まれます。数年後、この開催に乗ることで、JNIを使用するま作りをモチーフにしました。毎回する過程でクラッシュしょう後悔を用いJNI.後に固定の過程でクラッシュでは、誰かがそんなあなたの正アルゴリズムをC++でき通りを少し入った場所にスロットルです。とてもおもしろいですが、難しい便利な言い訳のような"んJavaしていた。
しくは変更不能なデータ構造Java.なものを考えるとスピードされたC/C++のアルゴリズムを実行することを示しています。また私の新しいコードで出歩ずっとC/C++のコードです。
書単位試験までを実施。用ボタンひ.
Kind Regards,
-Stosh
いJNIいただけるミュージアムです。それが抱える問題が書き換えの問題などで包んJNI呼び出webサービスを展開して異なる箱やバーチャルボックスです。
されることがありますので、あらかのみといて、DLL、おそらく JNA います。場合のパフォーマンスのための関数呼び出しを通じてJNAなもの)