草庐IT

jvm-default

全部标签

java - 我如何测量 JVM 启动时间?

我有一个用java编写的应用程序,我想知道在到达staticvoidintmain(Stringargs)之前需要多少时间,以及它在那个阶段做了什么,我该如何实现?我知道微软有一个名为MPGO(Managerprofileguidedoptimisation)的工具,是否有Java的等效工具? 最佳答案 从Java应用程序内部测量启动时间的简单方法:importjava.lang.management.ManagementFactory;publicclassTest{publicstaticvoidmain(String[]arg

java - 使用 Java Web Start/JNLP 启用 JVM 选项

我正在创建一个WebStart应用程序,它将受益于一些较新的JVM选项(尤其是逃逸分析、G1垃圾收集器等)同时,我希望应用程序能够在不支持这些选项的旧JVM上正常运行。是否有实现此目标的好方法? 最佳答案 作为Thorbjørn提到,Java6u10允许在JNLP中使用多个j2se元素。JNLPFileSyntaxresources最新的JavaWebStart开发人员指南部分,指出多个j2se元素,每个元素都具有java-vm-args属性,可以用最优先出现的。例如: 关于java-使

java - JVM 字节码访问修饰符标志 0x1000(十六进制) "synthetic"何时设置?

对于一些Java字节码解析器项目,我阅读了JVM规范并发现Java虚拟机类文件格式访问修饰符字段的位掩码值是ACC_PUBLIC=0x0001ACC_FINAL=0x0010ACC_SUPER=0x0020#oldinvokespecialinstructionsemantics(Java1.0x?)ACC_INTERFACE=0x0200ACC_ABSTRACT=0x0400ACC_SYNTHETIC=0x1000ACC_ANNOTATION=0x2000ACC_ENUM=0x4000我不知道0x1000是干什么用的。我在一个内部类中看到过一次,但从那以后我检查过的所有内部类都没有设

java - 跨 JVM 同步方法

如何跨JVM同步方法?我的示例是一个Web应用程序,它限制一个用户名不能多次登录(换句话说,第一个用户可以登录,但如果另一个用户使用相同的用户名登录,他将被拒绝)。Web应用程序部署在多个服务器上,因此存在多个JVM,并且用户可以尝试使用不同的服务器登录,具体取决于负载均衡器。方法是这样的publicsynchronizedstaticSessionDatalogonSync(StringuserName,Stringpassword)throwsException{intcount=DB.count("sessions","WHEREuser_name=?",userName);if

java - 如何创建 JVM 全局单例?

我的灵感来自thisstackoverflowquestion如何创建一个保证在整个JVM进程中只能使用一次的Java类实例?然后,在该JVM上运行的每个应用程序都应该能够使用该单例实例。 最佳答案 事实上,您可以实现这样的单例。在评论中向您描述的问题是一个类可能被多个ClassLoader加载。s。每一个ClassLoaders然后可以定义一个名称相同的类,该类会错误地认为是唯一的。但是,您可以通过对单例实现访问器来避免这种情况,该访问器明确依赖于检查特定的ClassLoader对于一个给定名称的类,它再次包含您的单例。这样,您可

java - 与 Java 相关的 jvm.cfg 文件的用途是什么?

它有一些奇怪的关键词。请解释该文件的一般用途。 最佳答案 简短版:控制在调用java或javac时可以使用启动标志选择的JVM。长版:让我们从评论开始#ListofJVMsthatcanbeusedasanoptiontojava,javac,etc.#Orderisimportant--firstinthislististhedefaultJVM.#NOTEthatthisboththisfileanditsformatareUNSUPPORTEDand#WILLGOAWAYinafuturerelease.所以我们有一个要传递给

java - 我们可以查看JVM内存中的对象吗?

在工作中,我们发现在某些情况下(尤其是慢速情况下)我们有不同的行为,这是在重新启动时获得的。我们猜测缓存未正确初始化,或者可能是并发问题...无论如何,除了生产之外,它在任何其他环境中都不可复制。我们实际上没有要激活的记录器...这是一个旧组件...因此我想知道是否有工具可以帮助我们查看JVM内存中存在的不同对象,以便检查缓存的内容...谢谢!编辑:我无法直接访问生产服务器,我们的应用服务器是weblogic10,我没有指向该对象的指针,但我知道缓存对象类型...编辑2:我们的服务器运行在jre1.5上,是否可以使用jmap?在jdk5中找不到它:(此外,远程调试可能很好,但出于安全原

java - RMI 线程阻止 JVM 在 main() 完成后退出

长话短说,在我的应用程序不再需要RMI后,我无法关闭几个JavaRMI的非守护线程。这可以防止JVM在main()完成时退出。我知道导出UnicastRemoteObject会导致RMI保持线程打开,直到您成功调用UnicastRemoteObject.unexportObject(Objecto,booleanforce)。下面是一个示例(无需修改即可运行,JVM将正常退出-删除对unexportObject的调用,JVM将永远不会退出):importjava.rmi.registry.LocateRegistry;importjava.rmi.registry.Registry;i

java - 在 java 中为 actorsystem 禁用 akka.jvm-exit-on-fatal-error

我正在使用akkaactor系统进行多线程处理。它在正常用例中运行良好。但是,Akka会在发生fatalerror时关闭JVM。请告诉我如何配置Akka以禁用java中的“akka.jvm-exit-on-fatal-error”。下面是代码。publicclassQueueListenerimplementsMessageListener{privateString_queueName=null;publicstaticbooleanisActorinit=false;publicstaticActorSystemsystem=null;privateActorRefmyActor;

java - 在 Windows 8 上安装 Elasticsearch 5.0.2 -\config\jvm.options "was unexpected at this time"

我是StackOverflow的新手(尽管潜伏了很长时间)。我正在努力在我的笔记本电脑上安装elasticsearch。它是Windows8,我刚刚将java更新到Java8,并且我使用setJAVA_HOME设置了新路径。但是,每当我尝试在命令行上运行elasticsearch.bat文件时,我都会收到此错误:\elasticsearch-5.0.2\bin\..\config\jvm.options这时候出乎意料如有任何帮助,我们将不胜感激 最佳答案 我还尝试在我的Windows2016R2Datacenter(64位)上设置E