問題タブ [trove4j]

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.

0 投票する
1 に答える
4915 参照

java - 標準の Java HashMap を使用すると (Trove THashMap と比較して)、非 HashMap コードの実行が遅くなります

HashMap を使用して、再帰アルゴリズムによって計算された約 200 万の値をキャッシュします。以下のコードのように、変数によって制御されるHashMap<Integer, Double>Collections Framework またはTIntDoubleHashMapTrove ライブラリのいずれかを使用します。boolean useTrove

オートボクシングなどを回避するため、Trove ライブラリはより高速になると思います。実際、put()とのget()呼び出しは、 の実行に約 500 ミリ秒かかるのに対し、 の実行には (合計で) 約 300 ミリ秒かかりTHashMapますHashMap<>

現在、私の全体的なプログラム実行時間は、 を使用した場合は約 2.8 秒、 を使用した場合は 6.7THashMapHashMap<>です。put()この違いは、とのget()呼び出しの実行時間の増加だけでは説明できません。

  1. この大幅に増加しHashMap<>た実行時間は、各 int/double をオブジェクトにボックス化する必要があるため、この実装は非常にメモリ効率が低く、このメモリ使用量の増加により、プログラムの他の部分でキャッシュ ミスが発生するという事実によって引き起こされていると思われます。この説明は理にかなっていますか? また、この仮説をどのように確認/拒否できますか?

  2. 一般に、このようなシナリオのアルゴリズムの最適化をどのように探せばよいでしょうか? HashMap<>アルゴリズムのプロファイリングは、少なくとも CPU 時間だけを考慮した場合、犯人であることを容易に指摘するものではありません 。メモリを大量に消費するプログラムでは、メモリの使用を優先する必要があることを事前に知っておくだけの問題ですか?

以下の完全なコード。

0 投票する
3 に答える
757 参照

java - アーティファクト gnu.trove:trove:jar:3.0.3 が中央に見つかりませんでした (https://repo.maven.apache.org/maven2)

gnu.trove ライブラリをダウンロードしようとしていますが、次の依存関係があります。

しかし、私はこのエラーが発生します:

なんで?に他のリポジトリを追加する必要がありますpom.xmlか? 現在、このリポジトリがリストされています:

0 投票する
1 に答える
74 参照

java - Gradle プロジェクトで Trove4j ライブラリを使用するにはどうすればよいですか

こんにちは、Trove4j ライブラリを私の gradle プロジェクトにインポートするにはどうすればよいか考えていました。

ありがとうございました。

私のbuild.gradleファイル