昨天我读到了一些关于应用程序优化的内容,以及程序员应该如何找到程序中最常用的部分,并通过分析和修改它们来获得最大的收益(在查看时间/工作投入与内存/速度增益时)。现在,我运行了 Eclipse 分析器,获得了 VisualVM,但我不知道如何正确使用这些数据。我主要关心的是内存使用(我正在生成一个 XML 并将其作为 zip 存储到磁盘或将其作为 zip 刷新给用户以供下载)和数据库的减速(我怀疑我的索引不存在或不好,无论如何,对它们了解不多,所以我不能告诉你更多:)但我什至不知道如何开始。对于第一种情况,VisalVM 显示程序最多使用 200MB,但是当我检查堆转储并单击最常用的对象(或它的名称)时,信息是压倒性的。对于第二种情况,我知道的更少,除了 Toad 有一些工具。
我想知道的是如何开始这样做,当我对本地性能感到满意时,如何在生产应用程序上进行。
Edit1:因此,对于内存使用的具体示例(我正在生成一个 XML 并将其作为 zip 存储到磁盘或将其作为 zip 刷新给用户以供下载)。这是我选择“堆转储”时得到的,然后按保留大小选择前 20 个对象并打开详细信息:
这就是我在同一个用例上打开 Profiler 时得到的结果:
问题是,这个屏幕告诉我什么?:)