1. 引言

系统性能优化涉及面非常广,涵盖方案优化、编码优化、并发优化、JVM 调优等诸多方面的知识。

虽然不同系统的优化策略存在差异,但从全局来看,它们的共性仍是主要的。首先,我们可以从方案设计、编码、并发设计、JVM 等方面去优化我们的系统;然后,可以通过一些 Linux 系统命令和工具去发现系统的性能瓶颈;最后,结合业务特点采用缓存、异步化、并发等方式对系统进行“定制”优化。

本文为“Java 系统性能优化系列”的下篇,主要内容如下:

  1. 系统优化之并发设计优化
  2. 系统优化之 JVM 调优
  3. 系统优化之缓存设计

2. 系统优化—并发设计优化

并发程序设计(concurrent programming)是指由若干个可同时执行的程序模块组成程序的程序设计方法。采用并发程序设计可以使外围设备和处理器并行工作,缩短程序执行时间,提高计算机系统效率。

2.1 并行设计模式

并发场景中,常用的 Java 多线程设计模式包括:Future 模式、Master-Worker 模式、Guarded Suspension 模式、不变模式和生产者—消费者模式等。

Future 模式

Future 模式的核心在于:去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其它业务逻辑。鉴于 Future 模式在多线程中高频使用,JDK 中内置了 Future 模式的实现。这些类在 java.util.concurrent 包里面。其中最为重要的是 FutureTask 类,它实现了 Runnable 接口,作为单独的线程运行。在其 run() 方法中,通过 S

主题 07:如何进行 Java 系统性能优化(下)相关推荐

  1. 面试进阶齐飞!Github一天万赞的阿里Java系统性能优化有多牛?

    前两天在知乎上看到一个问答,说的是: 一个Java程序员具备什么样的素质和能力才可以称得上高级工程师? 这个问题也引发了我的一些思考,可能很多人会说,"作为高级工程师,基础得过硬.得熟练掌握 ...

  2. 拉勾教育 | Java 性能优化实战 21 讲

    开篇词 开篇词 | Java 性能优化,是进阶高级架构师的炼金石 你好,我是李国.作为<Java 性能优化与面试 21 讲>这个课程的作者,我先来简单介绍下自己. 我曾任京东金融.陌陌科技 ...

  3. Java性能优化权威指南--笔记

    出处:http://xiongpq.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 原文 ...

  4. 推荐:Java性能优化系列集锦

    Java性能问题一直困扰着广大程序员,由于平台复杂性,要定位问题,找出其根源确实很难.随着10多年Java平台的改进以及新出现的多核多处理器,Java软件的性能和扩展性已经今非昔比了.现代JVM持续演 ...

  5. 缓存系统MemCached的Java客户端优化历程

    來源:http://www.infoq.com/cn/articles/memcached-java 作者 岑文初 发布于 2008年9月27日 上午12时38分 社区 Java 主题 集群与缓存 M ...

  6. java 性能 优化_Java十大简单性能优化

    java 性能 优化 关于" web scale "这个流行词有很多炒作,人们花了很多时间来重新组织他们的应用程序体系结构,以使其系统"规模化". 但是什么是扩 ...

  7. Android 系统性能优化(21)---App启动原理分析及启动时间优化

    一.启动原理解析 Android是基于Linux内核的,当手机启动,加载完Linux内核后,会由Linux系统的init祖先进程fork出Zygote进程,所有的Android应用程序进程以及系统服务 ...

  8. 《java系统性能调优》--1.发现瓶颈

    性能啊!性能! 之所以想写写性能调优,也是有感于我们的项目,我们採用一些手段使得系统性能上升了一个台阶,总是须要把这点经验沉淀一下.随着工作的深入,关于系统性能的事肯定还有非常多,也算是通过这个系列文 ...

  9. 生产环境服务器安全策略与系统性能优化评估

    生产环境服务器安全策略与系统性能优化评估 1. Linux的运维经验分享与故障排查思路 1.1 线上服务器安装基本策略和经验 精简安装策略: 仅安装需要的,按需安装,不用不装 开发包,基本网络包,基本 ...

最新文章

  1. 超详细解读ORB-SLAM3单目初始化(下篇)
  2. FlinkCEP - Complex event processing for Flink
  3. linux编辑模式复制快捷键,Linux vim删除、复制、粘贴快捷键
  4. mysql 5 可执行漏洞_漏洞预警:MySQL 0-day代码执行漏洞 可本地提权
  5. 基于IP的H.264关键技术
  6. 09-03 Java 抽象类
  7. 米家小白增强固件_中考体育:男1000米/女800米想拿满分,掌握呼吸法是关键
  8. automaticallyAdjustsScrollViewInsets 标签栏不正常显示
  9. 使用xadmin更新数据时,报错expected string or bytes-like object
  10. memcached学习(5). memcached的应用和兼容程序
  11. 51nod1003阶乘后边0的数量
  12. java万年历开题报告_单片机万年历开题报告
  13. 学习方法-北大学霸(01)学习方法基础
  14. 为什么新网站上线一个月都没有收录?
  15. Java毕设项目菜鸟驿站快递分发系统计算机(附源码+系统+数据库+LW)
  16. rk平台vr主板项目开发总结
  17. Java-Map-详解
  18. 降噪耳机哪个牌子好?商务用蓝牙降噪耳机推荐
  19. 一篇文章,搞懂自动化行业现状
  20. 2-10、秋招年6月晋升期——《硬件架构的艺术-数字电路的设计方法与技术》

热门文章

  1. [转]银监会紧急澄清:二套房贷首付六成报道不实
  2. f2fs学习笔记 - 6. f2fs初始化流程
  3. 创业公司、科技巨擎、产业龙头先后涌入 中国区块链技术平台三世同堂
  4. Bilibili视频爬虫
  5. python 输入与输出函数 IPO模式 200307
  6. Design compiler综合教程
  7. JAVA个人记账本代码,Java的家庭记账本程序(L)
  8. P1233 木棍加工
  9. 【论文解读】Cross-domain Correspondence Learning for Exemplar-based Image Translation
  10. 关于自制CMSIS_DAP离线下载器下载算法的代码说明:“0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA“