Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该如何开始分析/优化java应用程序/oracle数据库?_Java_Oracle_Optimization_Toad_Visualvm - Fatal编程技术网

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

我应该如何开始分析/优化java应用程序/oracle数据库?,java,oracle,optimization,toad,visualvm,Java,Oracle,Optimization,Toad,Visualvm,昨天,我读了一些关于应用程序优化的文章,以及程序员应该如何找到程序中使用最多的部分,并通过分析和修改它们来获得最大的好处(在查看投入的时间/工作量与内存/速度增益时)。现在,我已经运行了Eclipse profiler,获得了VisualVM,但我不知道如何正确使用这些数据。我主要关心的是内存使用(我正在生成一个XML,并将其作为zip存储到磁盘,或将其作为zip刷新给用户下载)和数据库的速度减慢(我怀疑我的索引不存在或不好,而且在任何情况下,我对它们不太了解,所以我不能告诉您更多:),但我甚至

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

我想知道的是如何开始这样做,以及当我对本地性能感到满意时,如何在生产应用程序上这样做

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

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


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

对于数据库应用程序,我将从阅读Cary Millsap的优秀文章开始:


搜索“与Oracle数据库交朋友”,例如…

对于数据库应用程序,我将从阅读Cary Millsap的优秀文章开始:


搜索“与Oracle数据库交朋友”,例如…

在Visual VM中,您可以深入查看代码的哪个部分占用了更大的内存。这就是你需要放大的地方。也可能是某个对象有大量实例,这可能表示内存泄漏。这些通常是你想要寻找的东西。你也可以看看Jamon(),它对生产监控非常有用,比如系统。你写道:“我怀疑我的索引不存在或不好,而且在任何情况下,我对它们了解不多,所以我不能告诉你更多:)”这就是我的网络书《使用索引,卢克》(Use The Index,Luke)的内容。一般来说,您应该首先定义一个目标。现在有多快,你想多快得到它?@Albert我假设这一部分,但在一个具体的例子中它意味着什么?我将编辑我的原始答案以获取详细信息。@Mark我现在正在查看这个,看起来很有趣,我们将看看是否有一些好处。在Visual VM中,您可以深入查看代码的哪个部分占用了较大的内存。这就是你需要放大的地方。也可能是某个对象有大量实例,这可能表示内存泄漏。这些通常是你想要寻找的东西。你也可以看看Jamon(),它对生产监控非常有用,比如系统。你写道:“我怀疑我的索引不存在或不好,而且在任何情况下,我对它们了解不多,所以我不能告诉你更多:)”这就是我的网络书《使用索引,卢克》(Use The Index,Luke)的内容。一般来说,您应该首先定义一个目标。现在有多快,你想多快得到它?@Albert我假设这一部分,但在一个具体的例子中它意味着什么?我将编辑我的原始答案以获取详细信息。@Mark我现在正在查看这个,看起来很有趣,我们将看看是否有一些好处。