java - 我应该如何开始分析/优化我的 java 应用程序/oracle 数据库?

标签 java oracle optimization toad visualvm

昨天我读到了一些关于应用程序优化的内容,以及程序员应该如何找到程序中最常用的部分,并通过分析和修改它们来获得最大的好处(当查看投入的时间/工作与内存/速度增益时)。现在,我已经运行了 Eclipse 分析器,获得了 VisualVM,但我不知道如何正确使用这些数据。我主要关心的是内存使用情况(我正在生成一个 XML 并将其作为 zip 存储到磁盘或将其作为 zip 刷新给用户以供下载)和数据库速度减慢(我怀疑我的索引不存在或不好,无论如何,对它们了解不多,所以我不能告诉你更多:)但我什至不知道如何开始。对于第一种情况,VisalVM 显示该程序使用了多达 200MB,但是当我检查堆转储并单击最常用的对象(或它的调用方式)时,信息是巨大的。对于第二种情况我知道的就更少了,除了Toad有一些工具之外。

我想知道的是如何开始执行此操作,以及当我对本地性能感到满意时,如何在生产应用程序上执行此操作。

Edit1:所以,对于内存使用的具体示例(我正在生成一个 XML 并将其作为 zip 存储到磁盘或将其作为 zip 刷新给用户以供下载)。这是当我选择“堆转储”,然后按保留大小选择前 20 个对象并打开详细信息时得到的结果:Heapdump screenshot

这是我在同一用例中打开 Profiler 时得到的结果:

alt text

问题是,这个屏幕告诉我什么? :)

最佳答案

就数据库应用程序而言,我会从阅读 Cary Millsap 的优秀文章开始:

http://method-r.com/downloads/cat_view/38-papers-and-articles

例如搜索“与 Oracle 数据库交友”...

关于java - 我应该如何开始分析/优化我的 java 应用程序/oracle 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3674577/

相关文章:

java - 在 Java 中读取法语字符

java - 如何在Java中使用matlabcontrol包调用Matlab时隐藏命令窗口?

sql - 合并查询返回 ORA-30926 : unable to get a stable set of rows in the source tables

windows - 启动 SQLPLUS,它要求输入密码,执行脚本,获取参数并退出,脚本中不包含 "exit"

java - 从信息模式中获取oracle中的表名列表

optimization - 如何更快地对组内观察结果进行排名?

java - 在 Java 构建过程中更改常量的最佳方法

java - 如何防止 CFEXECUTE 在 PrintStackTrace 之后挂起

haskell - 在库构建期间是否有 GHC 优化工作?

MySQL ...根据查询另一个表从表中删除记录