1

現在、Rhino エンジンを使用して、サーバー側で JavaScript コードの大きなブロックをいくつか実行しています。ただし、場合によっては、非常に長く (10 分以上) かかり、すべての CPU 使用率を使い果たします (少なくとも私のローカル開発環境では、現在これを実行しています)。

それで、現在のシステムを改善するために何ができるか、またはそこで新しいシステムを試すことができるか疑問に思っています.

任意の考えをいただければ幸いです。

ありがとう!

プラス: コードが大きすぎると例外がスローされます: java.lang.Exception: No Context associated with current Thread

4

3 に答える 3

0

まず、実行しているJavascriptブロックの大きさを知る必要がありますか?10行?50行?1000行?

50以上になる場合は、おそらくコンパイルが役立つでしょう。1.4を使用しているため、javax.scriptではなく公式のRhinoディストリビューションを使用する必要があります。その場合は、rhinoコンパイラを使用してください。

最初に、プログラムのプロファイルを作成しましたか?おそらく、問題を引き起こしている他の何かです。

アルゴリズムが可能な限り効率的であると確信していますか?

Rhinoを非難する前にこれらを考慮してください

于 2010-07-29T08:41:39.350 に答える
0

データベースから JavaScript コード全体を動的に生成しますか? おそらく、コードの修正部分を作成し、次のような関数を使用してコードにデータを入力することを検討できます。

        ScriptableObject.putProperty(scope, "out", out);
        ScriptableObject.putProperty(scope, "script", script);

次に、それをコンパイルし、「スコープ」をどこかに保存して再利用できます。

リリースには常に「jdk1.4」jarが含まれているRhinoの最新リリースを使用してください。おそらく役立つでしょう。

于 2011-11-09T03:17:04.767 に答える
0

スクリプトを実行する前にコンパイルし、コンパイルされたバージョンをキャッシュできますhttp://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/javax/script/CompiledScript.htmlを参照してください

(編集:ops ...それがsdk 1.4で機能するかどうかはわかりません)

于 2010-07-15T18:42:09.633 に答える