昨天我读了一些关于应用程序优化的内容,以及程序员应该如何找到程序中最常用的部分,并通过分析和修改它们获得最大的好处(当查看投入的时间/工作与内存/速度增益时)。现在,我已经运行了Eclipse分析器,得到了VisualVM,但我不知道如何正确使用这些数据。我主要担心的是内存使用情况(我正在生成一个XML,要么将其作为zip存储到磁盘上,要么将其作为zip压缩到用户下载)并从数据库中减速(我怀疑我的索引不存在或者不好,无论如何,不太了解他们,所以我不能告诉你更多:)但我甚至不知道如何开始这个。对于第一种情况,VisalVM显示该程序最多使用200MB,但是当我检查堆转储并单击最常用的对象(或它的调用方式)时,信息是压倒性的。对于第二种情况,我知道甚至更少,除了Toad有一些工具。
我想知道的是如何开始这样做,当我对本地性能感到满意时,如何在生产应用程序上执行此操作。
Edit1:所以,对于内存使用的具体示例(我正在生成XML并将其作为zip存储到磁盘或将其作为zip压缩到用户下载)。这是我选择“堆转储”时获得的,然后按保留大小选择前20个对象并打开详细信息:
这就是我在同一个用例上打开Profiler时得到的结果:
问题是,这个屏幕告诉我什么? :)
答案 0 :(得分:3)
就数据库应用程序而言,我将从阅读Cary Millsap的优秀文章开始:
http://method-r.com/downloads/cat_view/38-papers-and-articles
搜索“与Oracle数据库结交朋友”,例如......