草庐IT

Unix-CPU-SuperPI-Unixbench

全部标签

java - Solaris 上 Java 线程与 CPU 的最佳比例是多少?

我有一个Java应用程序,它有一个固定的15个线程池,这台机器,Solaris10SPARC,有16个CPU。添加池后性能大大提高,但我想知道是不是池中的线程太多了。线程越少性能越好,还是Solaris的线程调度做得很好。假设池大量使用15个CPU,然后其他应用程序线程出于各种原因需要CPU,并发垃圾收集就是一个很好的例子。现在,池和其他应用程序线程共享五个CPU。然后CPU1到7变为空闲,Solaris是否会将繁忙CPU上的线程共享时间转移到空闲CPU上?如果不是,将池大小保持较小是否更好,以便其他应用程序线程始终有可用的CPU?使问题更加复杂的是,应用程序中的CPU使用率非常零星。

java - Unix 中的 Chrome Headless 返回空页面源

我正在使用ChromeHeadless在Unix机器(CentOS)上运行我的selenium测试脚本。但同样的脚本在我的本地Windows机器上运行完美。但在Unix机器中它返回空页面源,如空html标签。尽管我使用的是最新的ChromeDriver2.33和googlechrome版本62.0,但不知道它在哪里出错了。System.setProperty("webdriver.chrome.driver","/../chromedriver.exe");--chromedriver.exeforwindowslocalmachine--chromedriverforunixmach

java - 用于 UNIX sys/classes/gpio 文件的 NIO watchservice

是否可以在/sys/class/gpio/gpioX设备树中的文件上设置JAVANIOWatchService以监督那里的变化?直接从Java中检测GPIO文件(即GPIO输入)的变化是个不错的主意,但我担心这不受支持。确认它不受支持(可能还有原因)就足够了。 最佳答案 Java7NIOFileWatcher的linux实现使用inotify。Inotify是一个linux内核子系统,用于通知文件系统更改。它有限制并且不适用于/proc、/sys和网络共享。请阅读inotifylimitationsonwiki:Inotifydoe

java - Java 中的 CPU 使用率太低

嘿stackoverflow社区!我遇到一个问题,其中高度复杂的算法程序使用的CPU利用率太低:介于3%和4%之间。返回结果需要很长时间,我认为它只是不够努力。你们中的任何天才都知道为什么会发生这种情况吗?如果有的话,我希望100%的利用率。一个额外的细节是该程序向sqlite3数据库中插入,因此是的,我相信有很多通过sqlite3jdbc库的JNI调用。(请注意,我之前想用PreparedQuery批处理延迟这些插入,但这导致了主要的内存问题-有很多数据)。提前致谢更新:已修复。是的,我只是一个傻瓜,但我没想到sqlite会开始一个新事务并做这么多开销。我现在使用PreparedSt

在约 110 个用户连续运行两天后,Java 服务器 CPU 使用率达到 100%

我有一个tomcat6.0.20,4月1.2,jdk1.6.0_15和mysql5.1.38在一个4GB内存的rhel盒子上运行。上面有一个简单的jsp/servlet应用程序,有5个用户,一个struts1.2.0.9有64个用户,一个struts2.0应用程序有35个用户。struts2.0的用户每秒钟都会创建一个条目,一天大约有900个条目。我还在最后两个应用程序中使用toplink进行持久化。我已在代码中将所有非引用对象声明为null,并已从struts2站点和tomcat站点为配置文件应用生产值。在mysql中应用线程缓存,减少wait_timeout和interactive

java - 如何在 Java 8 (Scala) 中将日期时间字符串转换为长(UNIX 纪元时间)

我想要一些pattern中的字符串的UNIX纪元时间(Posix时间,Unix时间),该字符串是正常格式(所以是UTC)。请使用Java8,而不是Joda或旧的Java。(毫秒请参见Howtoconvertadatetimestringtolong(UNIXEpochTime)MillisecondsinJava8(Scala))到目前为止,我有以下内容,但出于多种原因我讨厌它:对于最常见的日期处理(转换为UNIX大纪元时间)而言,它过于冗长了。7方法调用应该是1。它必须指定UTC,但UTC肯定只是默认值,为什么我必须在这里明确说明?它有一个字符串文字"UTC"它有一个神奇的数字Zon

java - 使用 JMX 获取线程 CPU 时间的有效方法

我目前通过以下方式使用JMX获取总线程CPU时间:privatelongcalculateTotalThreadCpuTime(ThreadMXBeanthread){longtotalTime=0l;for(ThreadInfothreadInfo:thread.dumpAllThreads(false,false))totalTime+=thread.getThreadCpuTime(threadInfo.getThreadId());returntotalTime;}由于ThreadMXBean实际上是一个远程代理,性能是可怕的,对于这个实际的方法调用来说是秒的数量级。有没有更快

java - 如何以编程方式从我的 Java 应用程序中获取内存、线程和 CPU 使用情况?

问题说明了一切!如何以编程方式从我的Java应用程序中获取内存、线程和CPU使用情况?谢谢 最佳答案 使用ManagementFactory中的各种静态方法,例如getOperatingSystemMXBean()、getMemoryMXBean()和getThreadMXBean()。 关于java-如何以编程方式从我的Java应用程序中获取内存、线程和CPU使用情况?,我们在StackOverflow上找到一个类似的问题: https://stackove

java - 为什么 park/unpark 有 60% 的 CPU 使用率?

最近我们开始使用YJP11.0.9对我们的应用程序(基于XMPP的聊天服务器)进行压力测试。在我们的测试过程中,我们注意到以下奇怪的行为。采样显示sun.misc.Unsafe.unpark(Object)占用了60%的CPU。对于同一个应用,Tracing显示LockSupport.park(Object)占用了52%的CPU。我做了多次测试来确认结果,每次我都得到相似的结果。我无法理解为什么unpark应该花费60%的时间以及为什么跟踪显示完全相反的结果。谁能帮我理解这些结果。我在这里遗漏了什么吗?环境:java-versionjavaversion"1.6.0_31"Java(T

java - 在 unix 重定向之前在 log4j 中捕获 stderr 和 stdout

我在我的应用程序中使用log4j来记录具有不同日志级别的某些包。但是,stderr和stdout似乎并未在此日志文件中捕获,而是在应用程序以启动时将它们打印在文件中javaAppName>>out.log是否可以在log4j中捕获stdout和stderr(例如,stdout作为信息,stderr作为WARN/ERROR)以及out.log文件?log4j的设置如下:更新:stackoverflow错误的堆栈跟踪:WARNrootbuffersizelimit:65log4j:WARNrootbuffersizelimit:65Exceptioninthread"Thread-12"2