问题标签 [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.

0 投票
2 回答
588 浏览

java - 获取 Java 中的硬盘访问次数

我想测量一个程序对硬盘的访问量(即读/写了多少字节)。我用谷歌搜索了这个问题,发现 Sigar 应该能够记录这样的事情,但是在继续搜索之后,我没有找到任何可以获取读/写计数的东西。在程序开始之前,我做

之后,我愿意

但这并没有返回任何感觉(我已经用一个 java-Program 试过了,它只写数字,它说有硬盘使用。

sigar.getDiscUsage似乎也只显示文件系统的大部分被使用了,而不是访问了多少。有没有人暗示如何用 sigar 或另一个图书馆来衡量这个?

在此先感谢 DaGeRe

0 投票
0 回答
257 浏览

java - Hyper-V 来宾中是否有可靠的单调时间源来进行基准测试?

Hyper-V 客人遇到可怕的时钟漂移。如果我的记忆没有让我失望,我会在几分钟的时间内看到很多秒的漂移,如果不是更少的话。而且我不是在谈论系统休眠等情况。

我想在这样的系统中对 Java 应用程序进行基准测试,测量进入和离开系统的单个消息的处理时间。单个消息的处理时间预计在 500 微秒到 3000 微秒之间(涉及一些 io)。

如有必要,我可以使用本机 .so 库。有问题的来宾系统将是可能具有 2.8.x 内核、64 位的 linux 机器。

在 Hyper-V 客人的 System.nanoTime 上发现的一篇文章并不令人鼓舞。

希望这可能CLOCK_MONOTONIC_RAW会拯救我,我CLOCK_MONOTONICSigar资源中寻找,但没有发现任何东西。

有任何想法吗?或者这是一个没有希望的努力?

0 投票
2 回答
1787 浏览

eclipse - Gradle 为本机依赖项生成错误的 Eclipse 类路径

我有一个依赖于 Sigar 库的 Gradle 项目,它使用本机库(作为其传递依赖项)。这是依赖树的相关片段:

不幸的是,Gradle 似乎没有认识到这些是本机库,并将它们添加到 eclipse 类路径中,就像它们是常规库一样jar。这会导致 Eclipse 中的错误:

我怎样才能解决这个问题?

编辑:

我试图从 Eclipse 类路径中排除本机依赖项,​​如下所示:

这仅部分有效。Gradle 不再向 Eclipse 类路径添加dll和文件,但仍添加文件:solib

0 投票
1 回答
4948 浏览

java - sigar-amd64-winnt.dll ...无法引用它或将其与 .jar 捆绑

(这可能是我犯的一个明显错误,但现在 6 小时后我无法让它工作。)

我正在尝试在我的 Eclipse 项目中使用 sigar.jar 获取 CPU 信息(现在只是测试 sigar API)。

它在eclipse中运行没有问题:

  • 使它在 Eclipse 中工作的原因是将 dll 放在与 sigar.jar 相同的文件夹中
  • 我测试了在构建路径配置对话框中将路径添加到 dll 作为“本机代码属性”没有效果。
  • 在运行配置中添加 vm 参数也没有效果。
  • 我测试了在这两个地方放置了 2 个假路径,只要我将 dll 放在与 sigar.jar 相同的文件夹中......它在 eclipse 中运行良好。

问题是当我尝试为我的项目导出可运行的 .jar 文件时。我尝试了两件事:

  • 我用 Bundle-NativeCode: libs/sigar-amd64-winnt.dll 修改了 MANIFEST.MF 文件(我假设这里的路径是相对于项目文件夹的)-> 没有成功:
  • 然后我决定把.dll和我的project.jar放在同一个文件夹下,在命令行中使用:java -Djava.library.path=./native/ -jar C:\cpu_usage_log\cpu3.jar (I' m 假设这里的路径是相对于包含 project.jar 的文件夹)...但同样没有成功:

错误:无法找到或加载主类 .library.path=..native

(我怀疑我应该在 -Djava.library.path=./path/ 之后给出一个主类名称作为第二个参数,但我找不到那个假定的“主类”名称,或者网络上的任何示例指定这样一个类...它是 .dll 中的主类吗?)

在这一点上,我真的不知道还有什么可以尝试的。我读了这两个对其他人有用的解决方案,这让我更加沮丧,因为我想这可能是我在阅读其他帖子时错过或不理解的一些明显的东西,而我就是找不到(这是我第一次处理在 java 项目中使用本机 dll)。

0 投票
1 回答
289 浏览

sigar - SIGAR API:何时使用gather()

我正在考虑使用 SIGAR 包来获取一些系统统计信息(从 Java 调用它)。在浏览各种课程时,有时我会看到一个“收集”例程。我可以理解,需要调用它来获取最新信息,并可能计算诸如吞吐率之类的东西。我不知道是谁应该打电话来收集?程序员,还是包本身?Javadocs 从来没有评论什么时候应该使用gather()。

任何人都可以给我一些关于我是否应该调用它的一般指示,如果是这样,什么时候?有时它似乎需要一个 Sigar 对象,有时则不是。

0 投票
1 回答
666 浏览

java - JNLP 通过 file: 但不是 http: 加载 Sigar 本机库

我有一个使用 jnlp 作为启动器的应用程序。它使用 Sigar 库,这些库需要为特定于平台的代码动态加载本机库。

出于调试目的,我有两个 JNLP 文件,一个使用 file: urls 引用代码库,另一个使用 http: urls。http url 指向正确提供文件的 localhost apache。我可以通过 apache 日志观看 JNLP 在其启动过程中下载它们的过程,因此我知道这些文件正在正确地到达我的应用程序。

这是两个代码库标签

和 codebase="http://localhost/" href="http://localhost/mnis.jnlp"

如果我双击文件:版本它工作正常。如果我通过浏览器加载它,它工作正常。

如果我双击或浏览器加载 http: 版本,则无法找到具有此错误的动态库:

现在,有趣的是它说它找不到 liblibsigar-universal64-macosx.dylib.dylib 的文件

注意前缀额外的“lib”和后缀额外的“.dylib”。

Sigar/vmware 论坛上有关于类似问题但没有解决方案的注释。

核心问题是,为什么这在文件中表现不同:上下文与 http: 上下文?

另外值得注意的是,我已经取消了所有文件的签名和辞职,我看不到任何签名错误。

这里有答案提示:Java Webstart with Tibco Native Libs

但它在一个文件中工作:上下文让我认为其他事情是错误的。

另外:JaNeLa 告诉我一切都很好

0 投票
1 回答
2570 浏览

java - 使用 Hyperic SIGAR 获取 Java 中的系统进程列表

我试图弄清楚如何list使用Hyperic SIGAR. 这是我到目前为止所拥有的:

但是,这最终会在看似任意数量的迭代后引发 SIGAR 异常。例如,有一次,我得到了这个:

然后它Sigar Exception在该行抛出了一个无效参数:

ProcExe temp = sp.getProcExe(pidList[i]);

有时,它会运行两次以上的迭代。有时,它运行不到两次迭代。我不太确定发生了什么,SIGAR文档似乎也不是很有帮助。当我想访问 CPU 和 RAM 使用信息时,我使用了类似的方法,即获取 a HumidorSIGARProxy从中获取 a,然后从SIGARProxy. 但是,为系统进程执行此操作似乎效果不佳。我该怎么做?

0 投票
1 回答
3623 浏览

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 安装到 maven (其中 sigar.jar 是一个仅与org-folder 中的文件,以及与 lib-folder 中的东西的 maven 依赖项),但是它找不到 .so 文件。

我试图找到答案,他们大多说应该解压缩文件,例如Unzip dependency in maven。解压缩(在通过 install:install-file 安装其他东西之后)确实可以正常工作,但该文件毕竟不包含在路径中。

然后我试图找到一些东西来在构建路径中包含这些文件,所以我做了这样的事情:Surefire JUnit Testing using Native Libraries(我想在测试中使用 sigar),但这也不会改变任何东西。我已经尝试使用许多不同的文件夹,甚至将文件本身而不是它所在的文件夹添加到库路径中,但即使这样:

不起作用,但文件显然在那里。我正在使用 Maven 2.2.1。

有没有人暗示如何在这种情况下让 sigar 工作?

提前致谢, 达格瑞

0 投票
0 回答
482 浏览

java - 如何使用 Java 和 Sigar 获取文件版本信息

我正在尝试编写一个程序,该程序将利用 sigar 来查找文件的版本信息。我看到 org.hyperic.sigar.win32 有一个 FileVersion 类,它有一个 getFileVersion() 方法,但我不清楚如何传递我想要查找版本的文件的位置。

我认为它会是这样的:

但这肯定是不正确的。

0 投票
1 回答
1084 浏览

classnotfoundexception - 带有 SIGAR API 的 ClassNotFoundException

我正在尝试使用 SIGAR API,并将外部 jar“sigar.jar”添加到我的 Build Path eclipse 项目中。它编译没有问题,但是当我尝试运行主类时,它只会:

cpu cpu = 新的 cpu();

它给了我这个错误:

可能缺少什么?