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