3

私はpydev+jython.great ideを使用していますが、jythonプログラムを実行しようとするとかなり遅くなります。これはおそらくライブラリのロード時間によるものです。

それをスピードアップするために私は何ができますか?

ありがとう、yaniv

4

2 に答える 2

2

Jython の起動時間が遅い...起動することがたくさんあります!

Jython スクリプトをゼロから実行するたびに、同じ Jython 起動時間コストが発生します。

したがって、Jython、Java、および Python が CGI の呼び出しに適していない理由はここにあります。したがって、Apache での mod_python の理由。

重要なのは、Jython を一度起動して再利用することです。ただし、モジュールは常に変更されており、Jython はこれらの変更を自動的に認識しないため、特に開発中は常に可能であるとは限りません。

Jython には、自動リロードのためにどのモジュールが変更されたかを知る方法が必要です。これは Jython に組み込まれていないため、他のサードパーティ ライブラリに依存する必要があります。概念は、変更されたモジュールを「sys.modules」から削除することです。簡単な解決策は、sys.modules からすべてのモジュールをクリアすることです。これにより、すべてのモジュールがリロードされます。これは明らかに、最も効率的なソリューションではありません。

もう 1 つのヒントは、モジュールが「本当に」必要なときにモジュールが必要とするモジュールのみをインポートすることです。モジュールの先頭にあるすべてのモジュールをインポートすると、モジュールのインポート コストが増加します。そのため、リファクタリングは、必要な場所と「意味のある」メソッド/関数内へのインポートを行います。もちろん、メソッド/関数が計算負荷が高く、頻繁に使用される場合、そのメソッド/関数内にモジュールをインポートしても意味がありません。

うまくいけば、それはあなたを助けます!

于 2009-12-14T18:00:32.387 に答える
1

複数のプロセッサを搭載したマシンを使用している場合は、オプションを使用して eclipse/pydev を起動して-vmargs -XX:+UseParallelGCみることができます。別の JVM を試して、パフォーマンスが向上するかどうかを確認することもできます。

于 2009-12-04T20:51:30.887 に答える