当前位置: 首页 > news >正文

无锡手机网站制作大学网页制作与网站建设

无锡手机网站制作,大学网页制作与网站建设,网站后台 ftp,手机软件程序开发mysql提高吞吐量这篇文章的灵感来自于在内存管理术语表中碰到“ Pig in the Python ”的定义之后。 显然#xff0c;该术语用于解释GC反复促进大对象世代相传的情况。 据推测#xff0c;这样做的效果类似于Python吞下整个猎物#xff0c;只是在消化过程中被固定住了。 在接… mysql提高吞吐量 这篇文章的灵感来自于在内存管理术语表中碰到“ Pig in the Python ”的定义之后。 显然该术语用于解释GC反复促进大对象世代相传的情况。 据推测这样做的效果类似于Python吞下整个猎物只是在消化过程中被固定住了。 在接下来的24小时里我简直无法理解Python的窒息。 就像精神病医生所说的那样消除恐惧的最好方法就是谈论它们。 所以我们开始。 但是除了PythonPython的其余部分将涉及垃圾回收优化。 我承诺。 垃圾收集暂停是众所周知的性能瓶颈。 现代JVM确实带有高级垃圾收集器但是据我所知为特定应用程序找到最佳配置仍然很困难。 为了甚至有机会手动解决该问题人们需要了解垃圾收集算法的确切机制。 这篇文章也许可以在这方面为您提供帮助因为我将使用一个示例来演示JVM配置中的微小更改如何影响您的应用程序的吞吐量。 例 我们用来演示GC对吞吐量影响的应用程序很简单。 它仅包含两个线程 PigEater –模拟一种情况Python不断吃掉另一头猪。 该代码通过在java.util.List中添加32MB字节并在每次尝试后Hibernate100ms来实现此目的。 PigDigester –模拟异步摘要过程。 该代码仅通过使该猪列表无效来实现消化。 由于这是一个相当累的过程因此在每次参考清洁后该线程将睡眠2000毫秒。 两个线程都会在while循环中运行继续吃和消化直到蛇吃饱为止。 大约有5,000头猪被吃掉。 package eu.plumbr.demo;public class PigInThePython {static volatile List pigs new ArrayList();static volatile int pigsEaten 0;static final int ENOUGH_PIGS 5000;public static void main(String[] args) throws InterruptedException {new PigEater().start();new PigDigester().start();}static class PigEater extends Thread {Overridepublic void run() {while (true) {pigs.add(new byte[32 * 1024 * 1024]); //32MB per pigif (pigsEaten ENOUGH_PIGS) return;takeANap(100);}}}static class PigDigester extends Thread {Overridepublic void run() {long start System.currentTimeMillis();while (true) {takeANap(2000);pigsEatenpigs.size();pigs new ArrayList();if (pigsEaten ENOUGH_PIGS) {System.out.format(Digested %d pigs in %d ms.%n,pigsEaten, System.currentTimeMillis()-start);return;}}}}static void takeANap(int ms) {try {Thread.sleep(ms);} catch (Exception e) {e.printStackTrace();}} } 现在让我们将该系统的吞吐量定义为“每秒消化的猪的数量”。 考虑到每100毫秒后将猪塞入python我们看到该系统的理论最大吞吐量因此可以达到10头/秒。 配置GC示例 让我们来看一下使用两种不同配置的系统行为。 在所有情况下该应用程序都是使用具有8G物理内存的双核MacOS X 10.9.3运行的。 第一种配置 4G堆 -Xms4g –Xmx4g 使用CMS清理旧的-XX UseConcMarkSweepGC 并并行清理年轻的-XX UseParNewGC 已将堆的12,5- Xmn512m 分配给了年轻一代从而进一步将Eden和Survivor空间的大小限制为相同大小。 第二种配置有些不同 2G堆 -Xms2g –Xmx2g 使用并行GC在年轻一代和终身一代中进行垃圾收集 -XX UseParallelGC 已将堆的75分配给年轻一代 -Xmn1536m 现在该下赌注了哪种配置在吞吐量方面表现更好每秒吃掉的猪还记得吗。 你们那些花钱买第一种配置的人我一定会让您失望的。 结果完全相反 第一种配置大堆大旧空间CMS GC每秒可以吃掉8.2头猪 第二种配置较小的堆2倍较大的幼小空间并行GC每秒可吞噬9.2头猪 现在让我对结果进行透视。 少分配2倍的资源在内存方面我们的吞吐量提高了12 。 这与常识相反可能需要进一步澄清实际发生的情况。 解释GC结果 您所面对的原因并不是太复杂而当您更仔细地观察GC在测试运行过程中的行为时答案就直盯着您。 为此您可以使用自己选择的工具我在jstat的帮助下进行了深入研究类似于以下内容 jstat -gc -t -h20 PID 1秒 查看数据我注意到第一个配置经历了1,129个垃圾回收周期YGCT FGCT总共花费了63.723秒 Timestamp S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 594.0 174720.0 174720.0 163844.1 0.0 174848.0 131074.1 3670016.0 2621693.5 21248.0 2580.9 1006 63.182 116 0.236 63.419 595.0 174720.0 174720.0 163842.1 0.0 174848.0 65538.0 3670016.0 3047677.9 21248.0 2580.9 1008 63.310 117 0.236 63.546 596.1 174720.0 174720.0 98308.0 163842.1 174848.0 163844.2 3670016.0 491772.9 21248.0 2580.9 1010 63.354 118 0.240 63.595 597.0 174720.0 174720.0 0.0 163840.1 174848.0 131074.1 3670016.0 688380.1 21248.0 2580.9 1011 63.482 118 0.240 63.723 第二种配置总共暂停了168次YGCT FGCT仅11.409秒。 Timestamp S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 539.3 164352.0 164352.0 0.0 0.0 1211904.0 98306.0 524288.0 164352.2 21504.0 2579.2 27 2.969 141 8.441 11.409 540.3 164352.0 164352.0 0.0 0.0 1211904.0 425986.2 524288.0 164352.2 21504.0 2579.2 27 2.969 141 8.441 11.409 541.4 164352.0 164352.0 0.0 0.0 1211904.0 720900.4 524288.0 164352.2 21504.0 2579.2 27 2.969 141 8.441 11.409 542.3 164352.0 164352.0 0.0 0.0 1211904.0 1015812.6 524288.0 164352.2 21504.0 2579.2 27 2.969 141 8.441 11.409 考虑到在这两种情况下需要进行的工作在以下方面是等效的–在看不到长寿物体的情况下GC在此养猪活动中的职责只是尽可能快地摆脱一切。 使用第一种配置GC仅被迫运行约6.7倍导致总暂停时间延长约5.6倍。 因此这个故事实现了两个目的。 首先最重要的是我希望我能从头上看到一条令人窒息的Python的照片。 另一个更重要的收获是–调整GC充其量是一项棘手的练习需要深刻理解几个基本概念。 即使使用本博客文章中使用的真正琐碎的应用程序您将要面对的结果也会对吞吐量和容量规划产生重大影响。 在实际应用中差异甚至更大。 因此选择是您的选择您既可以掌握概念也可以专注于日常工作并让Plumbr根据您的需求找到合适的GC配置 。 翻译自: https://www.javacodegeeks.com/2014/09/garbage-collection-increasing-the-throughput.htmlmysql提高吞吐量
http://www.sadfv.cn/news/106578/

相关文章:

  • ic商城网站建设怎么制作网站下载软件
  • 网站建设团队与分工网站改版对优化的影响
  • 科技风格网站深圳网站设计兴田德润简介
  • wordpress网站不收录html静态网站开发实验
  • 像素人物制作网站深圳市交易服务中心
  • 网站菜单素材深圳美联英语总部
  • 辽宁建设工程招标网站平阳住房和城乡规划建设局网站
  • 重庆医院网站建设李飞seo
  • 网站 点击量佛山外贸网站制作公司
  • 企业网站可信认证必须做吗百度权重工具
  • 长春seo公司长春网站设计wordpress自定义简单注册
  • 专业做根雕的网站网站seo和sem是什么意思
  • title 网站建设公司实力电子商务网站建设的一般过程
  • 成都商城网站开发设计电商网站都是用什么做的
  • 酒店网站制作公司湖北可以做网站方案的公司
  • 门户类网站开发多少钱湖南省做网站的
  • 手机有软件做ppt下载网站有哪些内容吗手机建筑网
  • 专业手机建站价格广东营销网站建设服务公司
  • 网站广告链接怎么做东莞市网络优化推广平台
  • 贵阳做网站kuhugz太原站扩建
  • 高端网站案例wordpress产品调用
  • 宜春建设网站wordpress自动获取封面图
  • 从什么网站找做app的代码怎样开发手机网站建设
  • 南沙网站建设公司建设工程合同管理多少分及格
  • 望京做网站的公司网站建设公司推来客网站系统怎么样
  • 呼市浩特网站建设旅游攻略网页设计
  • 南山网站设计训织梦网站自动跳转手机网站
  • 科技备案企业网站电子商务有限公司简介
  • 网站建设公司格网站设计经典案例欣赏
  • 南京师范大学课程建设网站门户网站建设方法