問題タブ [sigar]
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.
java - Javaでハードディスクアクセス数を取得する
プログラムが作成したハードディスクへのアクセス量(読み取り/書き込みバイト数)を測定したい。私は問題をグーグルで検索し、Sigarがそのようなことを記録できるはずであることがわかりましたが、検索を続けた後、読み取り/書き込みのカウントを取得するものは何も見つかりませんでした. プログラムが始まる前に、私は
そしてその後、私はそうします
しかし、これは意味のあるものを返しません(数値を書き込むだけのJavaプログラムで試してみましたが、ハードディスクの使用があったと表示されます.
sigar.getDiscUsage
また、アクセスの量ではなく、ファイルシステムの大部分が使用されているだけを表示しているようです。sigarまたは別のライブラリを使用して、これを測定する方法のヒントはありますか?
よろしくお願いします
java - Hyper-Vゲストでベンチマークを実行するために、信頼性の高い単調なタイムソースを利用できますか?
Hyper-Vのゲストは、ひどいクロックドリフトに遭遇します。私の記憶が私を失敗させないのであれば、私はほんの数分の間に何秒ものドリフトを見ました。また、システムが休止状態になっている場合などについては話していません。
そのようなシステム内でJavaアプリのベンチマークを行い、システムに出入りする個々のメッセージの処理時間を測定したいと思います。単一のメッセージの処理時間は、500マイクロ秒から3000マイクロ秒の間であると予想されます(いくつかのioが関係しています)。
必要に応じて、ネイティブの.soライブラリで問題ありません。問題のゲストシステムは、おそらく2.8.xカーネル、64ビットのLinuxマシンになります。
Hyper-VゲストのSystem.nanoTimeで見つけた投稿は、勇気づけられませんでした。
それがおそらく私の助けになるかもしれないことを期待してCLOCK_MONOTONIC_RAW
、私CLOCK_MONOTONIC
はSigarの情報源を探しましたが、それは何も見つかりませんでした。
何か案は?それとも、これは絶望的な努力ですか?
eclipse - Gradleは、ネイティブ依存関係に対して不正なEclipseクラスパスを生成します
ネイティブライブラリを(推移的な依存関係として)使用するSigarライブラリに依存するGradleプロジェクトがあります。これは、依存関係ツリーの関連するフラグメントです。
残念ながら、Gradleはこれらがネイティブライブラリであることを認識していないようで、通常のライブラリと同じようにEclipseクラスパスに追加しますjar
。これにより、Eclipseでエラーが発生します。
どうすればこれを修正できますか?
編集:
私は次のようにEclipseクラスパスからネイティブ依存関係を除外しようとしました:
これは部分的にしか機能しません。GradleはEclipseクラスパスにファイルを追加しなくなりましたがdll
、ファイルを追加します。so
lib
java - sigar-amd64-winnt.dll ... 参照できない、または .jar にバンドルできない
(これは私が犯している明らかな間違いかもしれませんが、6 時間経っても機能しませんでした。)
Eclipse プロジェクトで sigar.jar を使用して CPU 情報を取得しようとしています (今のところ sigar API をテストしているだけです)。
問題なく日食で実行されます。
- Eclipseで機能させたのは、dllをsigar.jarと同じフォルダーに配置することでした
- ビルド パス設定ダイアログで「ネイティブ コード プロパティ」として dll へのパスを追加しても効果がないことをテストしました。
- 実行構成に vm 引数を追加しても効果はありません。
- これらの2つの場所に2つの偽のパスを配置してテストしましたが、sigar.jarと同じフォルダーにdllがある限り... Eclipseでうまく動作します。
問題は、プロジェクトの実行可能な .jar ファイルをエクスポートしようとしたときです。私は2つのことを試しました:
- Bundle-NativeCode: libs/sigar-amd64-winnt.dll で MANIFEST.MF ファイルを変更しました (ここでは、パスはプロジェクト フォルダーからの相対パスであると想定しています) --> 成功しません:
- 次に、.dll を project.jar と同じフォルダーに配置し、コマンド ラインで使用することにしました: java -Djava.library.path=./native/ -jar C:\cpu_usage_log\cpu3.jar m ここでは、パスが project.jar を含むフォルダーからの相対パスであると仮定します) ...しかし、やはり成功しません:
エラー: メイン クラス .library.path=..native を見つけたり読み込んだりすることができません
( -Djava.library.path=./path/ の後に2番目の引数としてメインクラス名を指定する必要があると思いましたが、その想定される「メインクラス」名、またはそれを行うWeb上の例が見つかりませんそのようなクラスを指定する ....dll 内のメイン クラスですか?)
この時点で他に何を試すべきか本当にわかりません。私はこれらの2つの解決策が他の人のために働いたことを読みました.他の投稿を読んだときに見逃した、または理解できなかったことが明らかであり、見つけられない可能性があると想像するため、さらにイライラします(対処するのは初めてです) Java プロジェクトのネイティブ dll を使用)。
sigar - SIGAR API:gather()をいつ使用するか
SIGARパッケージを使用してシステム統計を取得することを検討しています(Javaから呼び出します)。さまざまなクラスを調べていると、「収集」ルーチンが表示されることがあります。これは、最新の情報を取得し、おそらくスループット率などを計算するために呼び出す必要があることを理解できます。誰がギャザーを呼んでいるのかわからないのですが?プログラマー、それともパッケージ自体?彼女は、gather()がいつ使用されることになっているのかについてコメントすることはありません。
誰かが私がそれを呼ぶことになっているのかどうか、もしそうなら、いつそれを呼ぶべきかについてのいくつかの一般的な指針を私に与えることができますか?Sigarオブジェクトを使用するように見える場合もあれば、そうでない場合もあります。
java - JNLP は、http: ではなく file: 経由で Sigar ネイティブ ライブラリをロードします。
jnlp をランチャーとして使用するアプリがあります。プラットフォーム固有のコード用に動的にロードされるネイティブ ライブラリを必要とする Sigar ライブラリを使用します。
これをデバッグするために、2 つの JNLP ファイルがあります。1 つは file: urls を使用してコードベースを参照し、もう 1 つは http: urls を使用して参照します。http url は、ファイルを適切に提供している localhost apache を指しています。JNLP が起動シーケンス中にそれらをダウンロードする様子を apache ログで確認できるので、ファイルがアプリに適切に到達していることがわかります。
これが2つのコードベースタグです
および codebase="http://localhost/" href="http://localhost/mnis.jnlp"
file: version をダブルクリックすると、正常に動作します。ブラウザ経由でロードすると、正常に動作します。
http: バージョンをダブルクリックまたはブラウザでロードすると、動的ライブラリが見つからず、次のエラーが表示されます。
ここで興味深いのは、liblibsigar-universal64-macosx.dylib.dylib が見つからないというファイルです。
プレフィックス エクストラ 'lib' とポストフィックス エクストラ '.dylib' に注意してください。
Sigar/vmware フォーラムには、解決策のない同様の問題に関するメモがあります。
中心的な問題は、なぜこれが file: context と http: context で異なる動作をするのかということです。
また、すべてのファイルの署名を解除して辞任したことにも注意してください。署名エラーは見られません。
ここに答えのヒントがあります: Java Webstart with Tibco Native Libs
しかし、それは file: context で機能します。これにより、何か他のことが間違っていると思います。
また: JaNeLa は私にすべて問題ないと言っています
java - MavenでSIGARを使用する
私は現在、maven-build で Sigar を使用しようとしていますが、毎回次のように表示されます。
「org.hyperic.sigar.SigarException: java.library.path に libsigar-x86-linux.so がありません」
mvn install:install-file -DgroupId=org.hyperic -DartifactId=sigar -Dversion=1.6.4 -Dpackaging=jar -Dfile=sigar.jar (sigar.jar は、 org-folder 内のファイル、および lib-folder 内のものとの maven 依存関係)、しかし .so-file が見つかりません。
私は答えを見つけようとしましたが、ほとんどの人は、Unzip dependency in mavenのようなファイルを解凍する必要があると言っています。解凍 (install:install-file を介して他のものをインストールした後) は正常に機能しますが、結局、ファイルはパスに含まれていません。
次に、ビルドパスにファイルを含めるものを見つけようとしたので、次のようにしました:ネイティブライブラリを使用したSurefire JUnit Testing(テストでsigarを使用したい)ですが、これも何も変わりません. 私は多くの異なるフォルダーでそれを試してみましたが、ライブラリパスにあるフォルダーではなく、ファイル自体を追加することさえしましたが、これでも:
動作しませんが、ファイルは明らかにそこにあります。私はMaven 2.2.1を使用しています。
このコンテキストでシガーを機能させる方法のヒントはありますか?
前もってありがとう、DaGeRe