原来以为是程序中某个地方内存对象一直占用而没有得到及时的释放,我用JProfiler tunning了半天,一直没找到具体的原因,后来查看操作人员的日志,,发生堆空间溢出的地方不同,在代码中有多处存在,但后来经过分析,这些地方的共同点是在new一个对象(包括对象数组)时,发生了堆内存溢出,这个问题对我来说不是难事,肯定是程序中产生了大量的对象导致,关键就是确定在什么地方导致了大量对象产生,可以寻找一个代码切入点(凭经验和对代码的熟悉程度),在发生异常的地方,设置断点,并且在在debug时可以回看back trace,看哪些对象中存在巨大的对象,凭此就可以快速的找到原因。
经过断点分析,终于找到了原因,原来是原来的程序员在所有属性函数的地方都生成了新对象,而这个属性函数是被频繁调用的,但是,这种属性查询函数实际上没必要每次产生新对象,因为对象所完成的功能是一样的,因此,我将其改为单例,问题就解决了。
现在看来,design by contract那本书里面讲的真是精辟,分清楚函数的功能很重要。
有时候感觉profiling也是一件蛮有趣的事情,关键是能看到程序中许许多多不完善的地方,
并且这些地方时原来程序员所忽略的,而伴随着解决这些问题,会感觉特有挑战性。
分享到:
相关推荐
criminal profiling,geographic profiling
profiling:一个交互式 Python 性能分析工具
系统级编程实验 第十次实验报告 profiling
Profiling Python: good book on profiling python
Profiling all paths.pdf
Through the use of a computerized geographic profiling system and two case studies, this chapter examines the applicability of geographic profiling in the context of terrorist attacks. The findings of...
Linux Profiling at Netflix.pdf
mysql优化之profiling的用法
Background Geographic Profiling •Outline the research project •Overview of the software used •Research results •Outline some investigative strategies
We begin by describing some of the mathematical foundations of the geographic profiling problem. We then present a new mathematical framework for the geographic profiling problem based on Bayesian ...
从pandas-profiling官方github下载好的pandas-profiling包,目前(2020年6月18日)最新版本,安装方式:pip install 压缩包路径
precise power delay profiling with commodity <PPT > mobicom2015.09
生成数据报告的安装包pandas-profiling,当使用命令直接下载,通常会网络超时,导致不能正常安装,此时可以下载这里的文件,具体操作见博客,https://blog.csdn.net/christineNAN/article/details/105
资源分类:Python库 所属语言:Python 资源全名:pandas-profiling-3.1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
WPF 提供了一套性能分析工具,允许您分析应用程序的运行时行为并确定可以应用的性能优化类型。下表列出了 Windows SDK 工具 WPFPerf 中包含的五个性能分析工具: 本主题包含以下部分。 使用性能分析工具 ...
资源来自pypi官网。 资源全名:pandas-profiling-2.0.3.tar.gz
12个A族水稻热激转录因子基因的表达模式,刘爱玲,陈信波,热激转录因子(Hsfs)是热激反应的主要调控因子,对热激反应的调节起着重要的作用。本研究利用半定量RT-PCR的方法检测了12个A族OsHsf 基因�
KIC 测试软件,主要用于SMT回流焊,波峰焊测试温度使用
Laravel开发-profiling 暂无描述
trace32支持大尺寸内存实时跟踪和实时特性描绘,该文档资料具体介绍了这两种方法的区别、用途以及配置方法。