当前位置: 首页 > 知识库问答 >
问题:

Mule3.2重载下的GC过频

云景焕
2023-03-14

在Mule 3.2的重载下(100个线程同时发送请求),通过jprofiler,我可以看到创建了很多对象实例(大约每秒500mb),并占用了堆年轻区域90%以上的空间,这导致jvm每2秒触发一次gc。

为什么?这正常吗?或者它是一个错误

jvm参数:

-Xms=2048m-Xmx=2048m-Xmn=768m-XX:PermSize=256m-XX:MaxPermSize=512m-Xss256k-XX:UseConcMarkSweepGC

谢谢

共有2个答案

经和歌
2023-03-14

您不应该使用jProfiler来测量应用程序的分配率。jPRofiler影响应用程序的性能,并且有巨大的开销。

您应该使用gc-logging/jmap/jstat或其他工具来观察和计算应用程序的真实内存统计信息。

然后,您可以在具有中等工作负载的应用程序上使用jProfiler来分析和研究堆分配。

谢旭
2023-03-14

对于Mule收到的每个请求,都会创建许多对象(会话、事件、消息、在许多地方充当闭包的匿名类)。

此外,某些传输可能会创建更多对象,而其他传输可能会创建更少,这取决于它们的技术需求(例如,HTTP将创建额外的对象来存储标头、cookie...)。

所以这不是一个错误,但我也不能说它是一个特性。我认为减少每个请求创建的对象数量对Mule来说是一个很好的举措......

 类似资料:
  • 问题内容: 我有一个网址,想通过返回函数下载图像,但是我无法使其正常配合,这是我的功能: 我传入URL,并希望从alamofire响应返回UIImage。 但是我明白了 void函数中非预期的非无效返回值 对于return语句。 我怎样才能正确地做到这一点? 问题答案: 您可以使用以下功能下载图像: 用途 要么 如果要使用AlamofireImage扩展名设置图像。

  • 问题内容: 我在服务器端有一个Struts2操作,用于文件下载。 但是,当我使用jQuery调用操作时: 在Firebug中,我看到数据是通过 Binary流 检索的。我想知道如何打开 文件下载窗口 ,用户可以用它在本地保存文件吗? 问题答案: 这是我现在建议的一些注意事项: 需要相对较新的浏览器 如果预期文件 很大,则 您可能应该执行与原始方法(iframe和cookie)类似的操作,因为以下某

  • 我试图使简单的文件服务器。我有Node.js后端与MongoDB GridFS存储存储文件。我从服务器获取文件通过。在前端,我使用Angular。我有两个主要问题: 当我使用Blob提供下载服务时,变成:“d1c393df-b0d9-4ae5-befe-8d45b183eb54…”友善的我读了很多关于它的文档,没有找到任何解决方案 当我只通过Express提供下载服务而不进行身份验证时,文件会正确

  • 问题内容: 我正在使用Selenium从此页面自动下载csv格式的文件: https://catalog.data.gov/dataset?tags=crime 这是我正在使用的代码: 此处设置了下载文件夹: 如何选择保存文件的名称?可以在下载时定义名称吗? 我的意思是这样的: 问题答案: 您无法控制通过selenium命名的下载文件 。 您可以使用目录观察者/观察者来检测文件何时下载,然后相应地

  • 我举一个url为例: 您可以在浏览器中看到它。 现在我想下载它。我试过: 失败,获取“错误”图片。 失败,获取“错误”图片。 失败了,得到了一张静态照片,我是说,只有一帧。 那么我该怎么做呢?

  • 我是php和ajax的新手。我试图从文档列表中强制下载文件。单击按钮后使用ajax调用触发以下功能。 我假设我得到的是文件内容作为响应,而不是下载文件。如果能给我一些建议,我将不胜感激。