jjzjj

windows - BSD 以外的操作系统的原子加载/存储?

在BSD提供的原子操作中(在atomic(9)手册页中给出),有atomic_load_acq_int()和atomic_store_rel_int()。在寻找其他操作系统的等效项时(例如,通过阅读MacOSX的atomic(3)手册页,Solaris的atomic_ops(3C)手册页,和Windows的Interlocked*()函数),似乎没有任何(明显的)等价物用于原子地读/写int。这是因为它暗示那些为int读/写的操作系统默认保证是原子的吗?(或者你必须在C/C++中使用declarethemvolatile吗?)如果不是,那么如何在这些操作系统上对int进行原子读/写?(

php - PHP MD5 和 Solaris Digest MD5 的输出不匹配

当我在PHP中运行下面的代码时$saltedPW="Test12309566173258152148992";$hashedPW=md5($saltedPW);echo$hashedPW;我得到的输出是fc8f7b8737b9d4754ff1156a3ad88b03当我在solaris机器上的bashshell中运行上面的代码时echoTest12309566173258152148992|digest-amd5我得到的输出是04df7b4ce498b87d696b32140ca63f6a我做错了什么吗?我已经在shell中尝试了双引号,但我仍然得到相同的结果。

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

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

java - 如何减少JVM虚拟内存的使用?

我有一个Java程序可以在具有2GB物理内存和2GB交换空间的Solaris10X86上运行。该程序在Linux64位上运行良好,仅占用约450MB内存。但是当它在Solaris中运行时,它总是报告OutOfMemoryError,我注意到就在错误发生之前,它试图使用>4GB的虚拟内存,这在32位系统上是绝对不可能的。那么为什么JVM会尝试使用那么多的虚拟内存呢?有没有办法告诉JVM不要使用那么多虚拟内存?谢谢。编辑:谢谢大家的意见!这是完整的错误消息:##ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue.#

java - 哪些 DTrace 脚本值得在 Solaris 上测试和分析 Java 程序

我找到了DTrace很有趣,但我个人未能看到一个用例可以让我获得信息,如果不使用DTrace,我无论如何也无法获得这些信息。因此,我想听听我忽略了什么。我可以在带有DTrace的vmwareOpenIndianabuild148上做些什么,这在创建独立应用程序和JavaEEWeb应用程序(其中大部分应用程序与使用套接字的遗留后端进行大量通信)时会有所不同?非平凡的Dtrace脚本非常受欢迎。 最佳答案 我对DTrace有一些很好的体验。我有一个客户端在24x7运行的生产服务器上运行我们的Java代码。我们在应用程序方面遇到了一些性能

java - 没有创建 hs_err_pid.log 文件,也没有从 Solaris 上的 jvm 转储核心

问题描述在运行我的Java服务器应用程序一段时间后,我遇到了Solaris上OracleJava虚拟机的奇怪行为。通常,当jvm崩溃时,会创建hs_err_pid.log文件(位置由-XX:ErrorFilejvm参数确定,如下所述:HowcanIsuppressthecreationofthehs_err_pidfile?但在我的例子中,文件没有创建,唯一剩下的是core核心转储文件。使用pstack和pflags标准Solaris工具,我能够从core收集有关崩溃的更多信息(包括在下面)文件。尝试过的解决方案试图在整个文件系统中查找所有hs_err_pid.log文件,但什么也找不

upgrade - IBM JDK/JRE 5 的生命周期结束了吗?

是否有宣布ibmjdk5的生命周期终止/支持终止日期(在Solaris/SPARC和Linux/x64上)? 最佳答案 首先,IBMJDK5(用于AIX)恰好是supporteduntil2012.我找不到Linux/x64系列的任何明确日期;您可能需要咨询IBM本身。其次,我不确定IBM是否发布了针对Solaris/SPARC的JRE或SDK;Solaris中使用的JDK版本通常是SunJDK,它甚至适用于WebSphere。 关于upgrade-IBMJDK/JRE5的生命周期结束了

java - 设置java使用一个cpu

我有一个应用程序拥有一定数量的cpus许可证,我希望能够在检查完成之前将运行java的cpus数量设置为1。我正在运行Solaris并查看了pbind但认为如果我启动应用程序然后使用pbind它会在设置java可以使用的CPU数量之前检查许可证。有谁知道在Solaris上启动具有一定数量CPU的应用程序的方法吗? 最佳答案 这是一种变通方法,但使用Solaris10,您可以设置一个具有单个可用CPU的区域,然后在该区域内运行应用程序。如果您想在不运行完整应用程序的情况下进行测试,他们很可能使用这段Java来获取CPU的数量:Runt

java - 如何调试 JNI/C 库?

我们这里有一个系统,它使用JavaJNI调用C库中的函数。在Solaris上运行的一切。我在某个地方遇到了字符串编码问题。用C编写的函数返回一个阿拉伯字符,但JNI方法接收一个具有另一种编码的字符串。我已经尝试设置$NLS_LANG和用于编码的vm参数,但没有任何效果。所以我需要能够同时调试C代码和JavaJNI。调试它的最佳方法是什么? 最佳答案 dbx调试器(SunStudio的一部分)可以附加到JVM进程,让您在Java代码和native代码之间单步执行。该功能的代号为“jdbx”,尽管它都是dbx的一部分。它没有得到大力推广

java - 打开的文件句柄太多

我正在开发一个巨大的遗留Java应用程序,其中包含大量手写内容,而现在您可以让框架来处理这些内容。我现在面临的问题是我们的Solaris服务器上的文件句柄用完了。我想知道跟踪打开文件句柄的最佳方法是什么?在哪里查看以及什么会导致打开的文件句柄用完?我无法在Solaris下调试应用程序,只能在我的Windows开发环境中调试。在Windows下分析打开的文件句柄是否合理? 最佳答案 我发现一个跟踪未关闭文件句柄的好东西是FindBugs:http://findbugs.sourceforge.net/它检查很多东西,但最有用的一项是资