草庐IT

memory_profiler

全部标签

tongweb生成hprof文件并结合Memory Analyzer Mat分析内存溢出(by lqw)

什么是堆JVM中的堆(Heap)是Java虚拟机管理的内存中的一部分,它用于存储所有的Java对象实例。堆内存被所有线程共享,其目的是为了存放对象实例和数组。堆的大小在JVM启动时就已经设定好了,大家可以通过选项“-Xmx”和"-Xms"来进行设置。“-Xms”用于表示堆区的起始内存,等价于-xx:InitialHeapSize。“-Xmx”用于表示堆区的最大内存,等价于-xx:MaxHeapSize。一旦堆区中的内存大小超过"-xmx"所制定的最大内存时,将会抛出outofMemoryError异常。通常会将-Xms和-Xmx两个参数配置相同的值,其目的是为了能够在Java垃圾回收机制清理完

导致虚拟机故障的 Java 映射/nio/NFS 问题 : "a fault occurred in a recent unsafe memory access operation in compiled Java code"

我已经为特定的二进制格式(nfdump如果有人感兴趣)编写了一个解析器类,它使用了java.nio的MappedByteBuffer。读取每个几GB的文件。二进制格式只是一系列header和大部分固定大小的二进制记录,通过调用nextRecord()将其馈送到被调用方,nextRecord()会推送状态机,完成后返回null。它表现良好。它在开发机器上运行。在我的生产主机上,它可以运行几分钟或几小时,但似乎总是抛出“java.lang.InternalError:afaultoccurredinarecentunsafememoryaccessoperationincompiledJa

java - Time Profiler、Instruments、OS X 中缺少 JAVA 过程名称

我正在使用Java编写算法实现。在OSX10.7之前,我使用SharkProfiler来分析我的实现,效果相当好。但是,新的Instruments不再找到过程名称。我已经尝试使用shark的VM参数(即-agentlib:Shark)运行java应用程序,但是10.7不知道它们,而且我找不到这样的仪器agentlib。关于如何将过程名称附加到Insturments中的符号名称(这是一些十六进制数字)的任何想法?我正在使用EclipseIndigo,如果这有什么不同的话。谢谢!编辑:到目前为止,OSXMountainLion没有任何变化。编辑#2:来自(?)开发人员通过apple的错误报

java - 在 spring boot 中使用@Profile

我有springboot应用程序(1.1.5.RELEASE)并通过配置属性启用我的配置文件spring.profiles.active=MyProfile配置文件被正确激活,我可以从正在创建的配置文件中看到bean。然后我有一个@Controller用法如下:@Controller@RequestMapping("/someUrl")@Profile("MyProfile")publicclassMyController{...}此Controller未实例化,Controller中使用的URL未映射。在同一个包中,我有另一个不受@Profile限制的Controller,它们会按预

java - 类型安全配置 : encryption/obfuscation of sensitive values in memory

我有一个需要多个密码才能工作的Akka项目:访问数据存储、分布式文件系统连接字符串...这些值没有硬编码在配置文件中,而是在应用程序启动期间在运行时从keystore中提取,然后存储在类型安全配置对象的内存中,因为第三方使用此配置获取密码并打开连接。我只是想知道这是否有风险,因为我猜这些字符串在内存中是清晰的。有没有办法透明地混淆/加密这些值?或者我是否需要在我这边实现它,并更新第三方以便他们在实际打开连接之前转换字符串。 最佳答案 在我看来,几乎在每个应用程序中,您都不应该担心安全风险。由于Scala在JVM上运行,请参阅:Sen

java - Spring Boot 使用 Spring Profile 忽略来自 Java 配置类的 bean

当我使用经典上下文加载在Eclipse上运行我的应用程序时,不用担心,与所选Spring配置文件相对应的配置类上定义的beans已正确实例化。publicclassBasketHandlerLoader{publicstaticvoidmain(String[]args)throwsException{@SuppressWarnings("resource")ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext("classpath:config/spring/spring-archibald-b

java - 类似HPjmeter的图形工具查看-agentlib :hprof profiling output

可以使用哪些工具来查看内置JVM分析器的输出?例如,我用以下命令启动我的JVM:-agentlib:hprof=cpu=times,thread=y,cutoff=0,format=a,file=someFile.hprof.txt这会生成hprof(“JAVAPROFILE1.0.1”)格式的输出。我过去曾使用HPjmeter取得过成功以合理的方式查看这些输出文件。但是,无论出于何种原因,使用当前版本的SunJVM生成的文件无法加载到当前版本的HPjmeter中:java.lang.NullPointerExceptionatcom.hp.jmeter.f.jb.a(UnknownS

java - HSQLDB SQL异常 : Out of memory establishing database connection

我们有一个带有本地HSQLDB数据库的桌面应用程序。一些客户报告他们的应用程序停止工作。当我尝试使用DbVisualizer打开它时,我可以在调试控制台上看到:12:45:32[DEBUGpool-2-thread-1D.?]RootConnection:jdbcDriver.connect("jdbc:hsqldb:C:\test\database.db",{user=**,password=})java.sql.SQLException:errorinscriptfileline:56outofmemoryatorg.hsqldb.jdbc.Util.sqlException(Un

java - 内存不足错误 : insufficient memory in IntelliJ?

当我在IntelliJ中以Debug模式运行我的项目时,出现以下错误。有人知道是什么原因吗?我已经在idea.vmoptions中增加了堆大小:-ea-server-Xms1g-Xmx3G-Xss16m-Xverify:none-XX:PermSize=512m-XX:MaxPermSize=1024m我已经将编译器的堆大小增加到1024,如下所示: 最佳答案 尝试Run菜单->EditConfigurations...->在左边的项目树中找到你的项目,寻找VMoptions:在右侧的面板中,根据此处找到的信息在那里输入内容:Wha

java - JVM 崩溃并出现错误 ='Cannot allocate memory' (errno=12)

我的代码因此错误消息而崩溃Executing"/usr/bin/javacom.utils.BotFilter"OpenJDK64-BitServerVMwarning:INFO:os::commit_memory(0x0000000357c80000,2712666112,0)failed;error='Cannotallocatememory'(errno=12)ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue.Nativememoryallocation(malloc)failedtoallocate2