您创建了一个了不起的应用程序。 您将其投入生产。 您会发现您没有足够的可用内存。 即使您的所有测量结果(可能是借助我们的小型公用事业公司进行的测量 )都表明您应该还不错。

我们计划发布一系列博客文章,研究堆消失的位置,并从基础结构版本开始。 今天的假设–我的应用程序服务器可能会成为消耗我所有宝贵内存的贪婪的混蛋吗?要找出答案,我们在五台应用程序服务器上进行了少量测试。

女士们,先生们,让我们介绍一下参赛者:

  • Oracle Weblogic 12.1.1
  • 玻璃鱼 3.1.1.2
  • RedHat JBoss AS 7.1.1
  • Apache Tomcat 7.0.30
  • 码头 8.1.7

您可能会说,我们这里将苹果与橙子进行比较–通过拥有完整的Java EE配置文件(例如Weblogic,Glassfish和JBoss),与Web容器(如Jetty或Tomcat)竞争。 但是–我们已经看不到看到仅运行servlet的IBM或Oracle部署的情况了,因此我们认为在同一页面上看到所有提到的通用容器将是一个启发。

在开始进行测量之前,我们想向Weblogic团队致以一些个人问候。 用于压缩没有根文件夹的归档文件。 跟踪地狱实际上是什么,我发现了一些乐趣。 其次,向JBoss致敬。 我花了10分钟浏览他们的网站来了解要下载什么。 非常感谢IBM 。 他们的WebSphere不能安装在Mac上。

但是我们并不打算让这个职位成为出色的续集,“ 一切都打破了,没有人难过” 。 因此,让我们继续比赛吧。 到现在为止,我们所有的容器都已下载并准备参与。 我们进行的测试包括每1000毫秒后启动所有容器并收集数据。 我们非常喜欢这种竞赛的科学方法,而且我们也很懒。 这种结合导致我们使用了内部构建的另一个小实用程序 ,并将所有无聊的工作委托给了stats文件。 使用与JVM本身捆绑在一起的JMX API收集了数据。 收集的数据包含可用于JVM的总内存和未分配的内存大小。

所有容器均以“现成的配置”启动,除了将统计实用程序添加到服务器启动脚本之外,我们没有进行任何其他更改。 唯一的例外是Weblogic,其PermGen空间已调整为绝对精度–当我们附加由两个java类组成的代理时,最后出现一条错误消息,提示您增加PermGen的大小。

在整个测试中,我们没有在服务器上部署任何东西,也没有以任何方式使用服务器,包括捆绑的管理员实用程序。 在我们使用kill -9 <pid>杀死所有服务器之前,所有服务器都有90分钟的运行时间。

用于执行测试的机器是运行OS X Mountain Lion的2010年老式64位Macbook Pro。 测试中使用的JVM是Oracle HotSpot 1.6.0_35。

但是足够的背景。 结果不言自明:

从图中可以看出,Tomcat是明显的赢家,它仅消耗了15.63MB的内存 。 Weblogic要求在图表的另一端增加两倍以上的容量,仅为其自身分配33.73MB

老实说,我们最惊讶地发现Jetty仅位于第三名。 在测试之前,我们团队内部进行的首轮下注显然使Jetty具有最小的内存占用。 但是,没有,它只有19.66MB ,在Glassfish和JBoss之间仅排名第三,分别消耗了23.26MB18.89MB

总而言之,即使是我们竞争中的明显失败者,也很可能不应对您的应用程序的内存问题负责。 当然,除非您使用的内存非常有限。

我们计划通过排列流行的框架来继续该系列,以查看在开始在典型的Java EE应用程序中编写一行代码之前会损失多少内存。 您想在比赛中看到什么框架? 通过包含@JavaPlumbr的鸣叫让我们知道。

参考: 谁在窃取您的记忆? Plumbr博客博客上的JCG合作伙伴 Nikita Salnikov Tarnovski提出 的Application Servers Edition 。

翻译自: https://www.javacodegeeks.com/2012/12/who-is-stealing-your-memory-the-application-servers-edition.html

谁在偷你的记忆? 应用服务器版相关推荐

  1. 互联网晚报 | 12月30日 星期四 | 百度网盘青春版正式上线;汽车之家回应“年底大裁员”;A股年内成交额创历史新高...

    ‍ 今日看点 ✦ 腾讯微信支付支持全量商家小程序场景开通银联云闪付功能 ✦ 百度网盘青春版正式上线:免费空间10GB,支持无差别速率下载 ✦ 汽车之家:不存在大规模裁员,整体人员优化幅度不及5% ✦ ...

  2. 一个从业(非正品)奢侈品十年从业者的经验和历程。

    知乎让我太心塞了,无数同行的举报,让我一句真心话都说不出来. 只是想走心的说说,今年这是我做这行第10个年头了,我也有资格来说说中国高仿包领域的现状. 这个行业,很残忍的一点,即便身在此山中,也不一定 ...

  3. 2018年云栖社区值得订阅的11个精选技术期刊!

    导语:近日,云栖社区全新推出垂直技术内容订阅平台,平台将以电子版周刊.月刊.每日导读等形式,为您呈现各垂直技术领域优质内容集锦.您只需通过一次简单订阅操作,即可定期接收到感兴趣的技术内容集锦.以下为你 ...

  4. 建了个微信交流群,和我一起在 b 站学 Python

    苏生不惑第220 篇原创文章,将本公众号设为星标,第一时间看最新文章. 之前我发过好几篇关于Python的文章: 七夕又来了,给女朋友做个动态二维码 一键下载公众号所有文章,导出文件支持PDF,HTM ...

  5. 免费!中文!10个最佳Python学习网站推荐

    分享资料,一起学习! 我是小白(微信 tlxx233 ) 备注 888建了个微信程序员学习群,互相解答问题,有需要的同学可以加我微信进群. 10个免费学习 Python 的中文网站 如果你想要学习 P ...

  6. Spring 常用注解 脑图版

    Spring 常用注解 脑图版 学习Spring Boot过程的笔记,通过思维导图整理自己的思路,更符合大脑记忆;在线版可以看到注释及代码实现; 在线脑图地址: http://naotu.baidu. ...

  7. 2012年最新考研资料

    2012版考研英语[宫东风]序列1-4<阅读+长难句+写作+词汇>电子书: http://www.iliyu.com/source/42724/ 2012[陈阳]xdf考研英语写作新思维初 ...

  8. 心已明了自己的坚定,我珍惜今日的情怀

    让世界拥有它的脚步,让我保有我的茧.当溃烂已极的心灵再不想作一丝一毫的思索时,就让我静静的回到我的茧内,以回忆为睡榻,以悲哀为覆被.这是我唯一的美丽. 曾经,每一度春光惊讶着我赤热的心肠.怎么回事呀? ...

  9. 日语五十音图快速记忆法和搞笑版

    日语的五十音对于大多数初学者来说都是比较困难的,虽说熟能生巧,但是死记硬背要用去很多时间和精力,效果也不见得好.我觉得比较好的方法就是联想记忆法,这篇文章参 考了网上流传的<日语五十音图快速记忆 ...

最新文章

  1. UDSMProt:蛋白质分类通用深度序列模型
  2. CISCO路由器产品配置手册
  3. Spring.net抛砖引玉系列(二)用接口来实现HelloWorld
  4. 在SQL SERVER中使用分布式事务
  5. ElasticSearch 2 (26) - 语言处理系列之打字或拼写错误
  6. 大学物理上册详细笔记_干货满满!快来pick自哈军工以来的学霸笔记!
  7. VS2015+NUnit+OpenCover 完成单元测试代码覆盖率测试
  8. vue 第二天(常用指令及插值语法)
  9. Git配置全局用户名
  10. css_02 | CSS——CSS 选择器详解
  11. JavaScript封装自己的库
  12. android studio : amend commit
  13. win10 隐藏图标
  14. 英语外刊精读(Part 2):day1,泛读;day2, 精读(上);day3, 精读(下)
  15. CodeForces 74 C.Chessboard Billiard(并查集)
  16. 机器学习-决策树算法原理及实现-附python代码
  17. 支持历史阅读记录的PDF阅读工具
  18. Spring文件上传和连接重置问题
  19. 微信小程序云开发--拼图游戏
  20. 小项目-弹幕数据分析+词云展示

热门文章

  1. python安装运行时提示不是内部或外部命令怎么办_如何解决cmd运行python提示不是内部命令...
  2. java 堆转储快照_捕获Java堆转储的7个选项
  3. selenium查找文本_在Selenium中查找具有链接文本和部分链接文本的元素
  4. wso2 安装_WSO2注册表安装简介
  5. yeoman_具有Spring Boot和Yeoman的单页Angularjs应用程序
  6. 工厂模式理解_工厂模式
  7. java设计模式迭代器模式_迭代器设计模式示例
  8. 您想了解的所有Throwable
  9. 使用混合多云每个人都应避免的3个陷阱(第4部分)
  10. javafx中的tree_JavaFX中的塔防