問題タブ [multiple-dispatch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
julia - 多くの同様の関数に対して複数のディスパッチを実装する効率的な方法
量のさまざまな関数形式のライブラリを含むソフトウェアを作成しています。Julia の複数ディスパッチを活用したいのですが、この手順をより効率的に実装する方法があるかどうかを知りたいです。
たとえば、次の 2 つの関数を含むライブラリを考えてみます。
また、これらの関数形式を値のベクトルまたはベクトルの配列 (行列) に適用できる複数のディスパッチ メソッドを実装したいと考えています。私は次のようにこれを行うことができます
しかし、関数の 3 つのバージョンはすべて同じカーネルを使用し、さまざまなディスパッチのアクションはすべての関数形式で同じであるため、新しい関数を定義するようにこれを記述するより効率的な方法があるかどうかを知りたいです。ライブラリ (例: thirdfunction
) では、カーネル関数を明示的に記述するだけで済み、ライブラリ内の関数形式2*n
に対して本質的に同一の関数を入力する必要はありませんn
。
python - コマンドラインから実行している multipledispatch ModuleNotFoundError
コマンドラインからlocust
( locust.io ) スクリプトを実行します。
locust
main.py
次のインポートを持つ呼び出し:
Packer.py
これらのインポートがあります:
StreamGenerator.py
もっている:
以前pip
はインストールmultipledispatch
していましたが、PyCharm 内から実行すると正常に動作しますが、コマンド ラインからは次のようになります。
これが私がこれまでに試したことです:
- ディレクトリを PYTHONPATH 環境変数に追加する
__init__.py
各パッケージに空のファイルを追加する
pip install
ただし、実際にモジュールを編集した場合、これはすべて不要に思えます。
以下の回答により、エラーが表示されなくなりましたmultipledispatch
。ただし、モジュールが見つからないというエラーが表示されるようになりました。
わかりやすくするために、locust
ここに示すように Python コードを呼び出すコードを実行しています。[モデレーター - この質問はかなり長くなってしまいました。それでいいの?】
performance - Julia Val{c}() は、辞書検索に比べて遅いようです
Julia の複数のディスパッチと型としての値のアプローチについては、まだ学習中です。Val{c}() のインスタンス化は、辞書検索よりも約 50 倍遅いようです。その後、ディスパッチは辞書検索よりも 6 倍速いようです。
これらの期間は予想されますか? Val{c}() のインスタンス化を高速化することは可能ですか?