java - 同一请求多次执行应用程序的响应时间不同 性能问题

标签 java performance

我的java应用程序功能是提供引用数据(基本上将大量数据从xml文件加载到hashmap中),因此我们根据id从hashmap中请求一个这样的数据,并且我们有针对不同集合的多个has映射业务数据。问题是,当我尝试多次执行同一请求的java应用程序时,响应时间不同,如31ms、48ms、72ms、120ms、63ms等。因此,所花费的最短时间和最长时间之间存在相当大的差距。执行完成。理想情况下,我期望响应时间为 63 毫秒、65 毫秒、61 毫秒、70 毫秒、61 毫秒,但在我的情况下,同一请求的响应时间变化很大。我使用了开源配置文件来了解是否有任何额外的方法执行或内存泄漏,但根据我的理解,没有问题。请让我知道可能的原因是什么以及如何解决这个问题。

最佳答案

可能有多种原因:

  • 您的 Java 应用程序每次运行时都会重新启动吗?如果没有,则垃圾收集器可能在不合适的时间启动。如果是这样,JVM 启动时间可能是造成这些变化的原因。

  • 该机器上还有其他程序在运行吗?

  • 磁盘缓存是否在某些情况下“预热”,但在其他情况下却没有?也就是说,这些文件最近是否被访问过,因此它们仍在内存中?

  • 如果这是一个网络应用程序,测量期间是否有任何网络 Activity ?

  • 如果涉及远程计算机(例如数据库服务器或文件服务器),上述内容也适用于该计算机吗?

使用探查器找出哪段代码导致时间变化。

关于java - 同一请求多次执行应用程序的响应时间不同 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2591985/

相关文章:

php - PHP 函数的 Big-O 列表

找不到 Java 命令

Java 9 模块和类路径 hell : conflicting class names

java - 通过输入流创建字节数组列表

android - 我的应用程序在 Android 4.0 上变慢了很多

mysql - 在庞大的数据集上使用 IN 是个好主意吗?

Java 8 不兼容的类型

java - 使用java打印数组列表中元素的出现次数

python - Numba nopython 模式的三对角矩阵算法

在 Select LIKE 中使用通配符 % 时的性能