问题内容: 我有一个用Java编写的应用程序,我想知道到达之前需要花费多少时间,并且在那个阶段它正在做什么? 我知道微软有一个称为MPGO(经理配置文件指导的优化)的工具,是否有Java的等效工具? 问题答案: 一种从Java应用程序内部测量启动时间的简单方法: 您可以使用JVMTI代理来跟踪VM事件,例如类加载,垃圾回收,方法编译等。这是我制作的一个简单代理-vmtrace(以及Windows
问题内容: 例如,我有DBManager.java Singleton类,必须将其部署在集群环境中。这是一个基于Web的应用程序,具有以下部署策略 Apache负载平衡器-> Tomcat 6(群集中有3个服务器)。 我必须为3个tomcat实例维护一个DBManager实例。 我的代码是 我一直在寻找解决此问题的方法,并发现类似JGroups API的东西。可以使用JGroups实现吗?任何想法
问题内容: 尽管JVM会将SIGTERM和类似的信号转换为关闭挂钩,但是许多服务关闭脚本使用TCP端口启动关闭。(例如,Tomcat的关闭端口,Java Service Wrapper ,JBoss的管理接口等) 所以我认为不建议使用信号和关闭钩子来正常关闭Java服务,直到发现Play!框架通过关闭钩子管理服务生命周期,并且由生成的启动脚本假定将信号发送到JVM的PID。 我知道信号是与平台相关
问题内容: 情况是这样的,我的macbook pro有两个网络接口。一个是静态定义的以太网接口,另一个是DHCP配置的无线接口。 我试图弄清楚如何配置特定的Java项目以仅使用我的静态有线接口,而不是简单地通过JVM或IDEA(IntelliJ 8)选择列表中的第一个接口。 我设法通过一个vmware实例实现了这一目标,在该实例中,我的虚拟环境仅靠有线接口提供,但这会带来广告性能问题,并且只是在W
问题内容: 如果我正在设计一个关于排序算法的测试,是否可以这样做以避免JVM预热?谢谢! 问题答案: JVM预热通常是指JVM查找代码的这些部分并将热点和JIT花费的时间。如果您运行实际测试几百次(我相信实际上是几千次),那么您应该相当不错。 但是,您应该知道,即使这样做,也无法保证。您必须对特定的JVM进行试验,以弄清关键部分被JIT之前必须要做的工作等等。 在这个小案例研究中,JIT编译在17
问题内容: 我正在尝试使用Java 14安装netbeans。 我遇到错误- 以下是我的Java详细信息- 我的操作系统详细信息是- 我该如何解决这个问题? 问题答案: 尽管Apache NetBeans 11.3完全支持JDK 14的使用,但不幸的是它的安装程序不支持。从Apache NetBeans 11.3下载页面 : 安装程序将无法在JDK 14下运行, 因为使用了Pack200工具和AP
问题内容: 我有一个Java Web Start应用程序,该应用程序是通过快捷方式启动的: 但是在安装JDK 1.8之后,所有这些都停止了工作,我的javaws看不到任何其他X || D参数。我这样尝试: 但是没用。 我发现的唯一解决方案是使用Java控制面板设置参数,并将其直接添加到JVM。 如何为1.8好的旧方法设置参数? PS JDK 1.6 x32仍然可以很好地使用快捷方式。x64 1.7
问题内容: JVM崩溃中的日志文件包含各种有用的调试信息,例如加载的共享库和完整的环境。我可以强制JVM以编程方式生成其中之一吗?通过执行使它崩溃的代码还是其他方式?或者以另一种方式访问相同的信息? 问题答案: 您可以尝试抛出OutOfMemoryError并添加-XX:+ HeapDumpOnOutOfMemoryError jvm参数。从1.6开始,这是新功能,而McDowell建议使用其
问题内容: 我在学校被告知,修改a的index变量是一种不好的做法: 范例: 有论据认为, 某些编译器优化可以优化循环, 而无需重新计算索引并限制每个循环。 我进行了一些测试,似乎默认情况下每次都会重新计算索引和绑定。 我想知道是否有可能在中激活这种功能? 例如,优化这种循环: 无需写: 这只是一个例子,我很想尝试一下改进。 编辑 根据Peter Lawrey的回答, 为什么在这个简单的示例中JV
问题内容: 我有一个应用程序对于某些进程暂时需要一定数量的内存/堆。如果可以选择给JVM一个最大堆大小的合理值,那么JVM将从一个小的堆开始,并按需向OS请求更多的内存。 我的问题是,当我的应用程序不再需要大量内存时,JVM是否会将额外的内存还给操作系统(例如,用于其他进程)。目前,即使不再需要,我的应用程序似乎也可以永久保留该内存。 问题答案: JVM确实将内存返回给操作系统,但是非常不情愿,因
问题内容: 根据我的最后一个问题,我必须为我的唯一JVM定义Multiple SparkContext。 我以另一种方式(使用Java)做到了: 之后,我创建下一个源代码: 然后在代码中: 执行代码后,我收到下一条错误消息: 数字和是行,其中两个对象都用Java代码定义。我的问题是,如果我已经使用-method ,是否可以在同一JVM上执行多个SparkContext以及如何执行? 问题答案: 您
问题内容: 我有一个第三方.NET Assembly和一个大型Java应用程序。我需要从Java应用程序调用.NET类库提供的方法。该程序集不支持COM。我已经搜索过网络,到目前为止,我有以下内容: C#代码(cslib.cs): 编译使用(使用.net 3.5,但使用2.0时也会发生同样的情况): C ++代码(clib.cpp): (使用VC 2008工具进行编译),但使用2003工具时也会发
问题内容: 我正在使用Launch4J启动我的Java应用程序,如果系统上存在x64 JRE,Launch4J似乎更喜欢它。 不幸的是我的应用程序无法在64位JVM上运行,因为我正在加载32位DLL,这是不可能的,并导致UnsatisfiedLinkError。 有什么方法可以强制/欺骗Launch4J仅使用32位JVM? 问题答案: 大约一年前,我遇到了这个确切的问题,使用Lauch4J封装了一
问题内容: 当前,在我们的测试环境中,最大和最小JVM堆大小设置为相同的值,基本上与专用服务器计算机为我们的应用程序所允许的大小相同。这是性能最佳的配置,还是给JVM一个更好的范围? 问题答案: 设置- Xms的主要原因是,如果您在启动时需要一定的堆。(防止OutOfMemoryErrors在启动时发生。)如上所述,如果您需要启动堆来匹配最大堆,则是匹配它的最大时间。否则,您将不需要它。只是要求应
问题内容: 我们最近一直在将许多应用程序从RedHat linux JDK1.6.0_03下运行迁移到Solaris 10u8 JDK1.6.0_16(规格更高的机器),并且我们注意到了一个似乎很紧迫的问题:在某些负载下,我们的JVM获得了自己陷入“死亡螺旋”,并最终失去记忆。注意事项: 这 不是内存泄漏的情况 。这些应用程序运行良好(在一种情况下已超过3年),并且在任何情况下都无法确定内存不足错