美文网首页
浅谈性能优化

浅谈性能优化

作者: JackMA杰黑马 | 来源:发表于2019-08-07 23:12 被阅读0次

性能优化(Performance Turning)老生常谈的问题。确实也在几次面试中被问到过相关的问题。当时也就自己做过的几个小型优化说了下感受。

今天,部门组织了一场对公司业务系统的性能优化讨论。突然想到,这就是一个不错的应对当时面试的回答。今天在场的几位大牛加起来应该有100年开发功力了,还是挺值得把思路记录一下的。

现状与目标分析

现状分析:目前的性能是怎样的级别?用数字说话,例如处理多少条数据或请求,用时多少。瓶颈在何处?用压测分析不同系统、模块、步骤、甚至函数的消耗时间。找到瓶颈,针对耗时高的位置进行提升。
目标分析:性能要提高到怎样的程度?数量和时间。数量是百万级,千万级,亿级?是什么时候的目标?请业务拿出准确的数据和趋势分析。拍脑袋也请给个依据。在现在为3、5、7年后的业务目标做性能优化,那绝对是一个浪费。最后,要在多长的时间完成。

策略与选项

分析清楚以上两点后,接下来就是实实在在的招式了。数量凑不齐降龙十八掌,凑个独孤九剑还是可以。

  1. 一了百了,低风险大招。请帮应用服务器和DB加硬件资源。CPU,Memory。效果必定有,但不明显就要深查代码和架构了。
  2. 表分区和分表。关系型数据库,单表去到1千万数据就应该考虑做表分区了。如果接近2千万,应该考虑分表。使用日表,月表分别存储。还可以按业务类型分表。
  3. 批量处理。尽量在内存里处理,程序批量处理后再批量写数据库。减少数据库连接使用。
  4. 缓存,尽量把静态的,不常变的数据进行缓存。这里主要要小心缓存刷新。
  5. 多线程。引入多线程提高并发处理。
  6. 如果只是单纯的数据库操作,数据合并,使用存储过程。前提是不要包含复杂的业务逻辑。在数据处理时可以先在临时表中清洗处理,然后再写入业务表。
  7. 考虑使用MQ代替文件传输。
  8. 注意数据的归档和清理,保持业务主表轻量。
  9. 各种SQL优化。针对分析中的瓶颈做程序的代码优化。

招式还有很多很多,思路就是拿着压测一步步向目标靠。代码、架构、SQL、数据库、硬件,拿着分析数据逐个击破。

相关文章

  • 性能优化浅谈

    雅虎35条军规 页面内容 减少HTTP请求客户端80%的时间花在图片、样式、脚本等资源下载上,最直接的方式是减少页...

  • 浅谈性能优化之图片压缩、加载和格式选择

    原文链接:浅谈性能优化之图片压缩、加载和格式选择[https://tzy1997.com/articles/we0...

  • App性能优化浅谈

    前言 前段时间给公司的小伙伴们进行了关于app性能优化的技术分享,这里我稍微整理一下也给大家分享一下,关于性能优化...

  • 浅谈ListView性能优化

    很多小伙伴可能一看标题...啥ListView 这个早过时了的东西好不好,没关系即使使用RecyclerView ...

  • 浅谈性能优化

    性能优化(Performance Turning)老生常谈的问题。确实也在几次面试中被问到过相关的问题。当时也就自...

  • 浅谈 iOS 性能优化

    iOS 中的 CPU 和 GPU 在屏幕成像过程中,CPU 和 GPU 起着很重要的作用。 CPU(Central...

  • 浅谈Web性能优化

    Web性能优化是一个广泛而琐碎的话题,需要时间和经验的积累才能侃侃而谈,这里简要总结一些。 使用CDN CDN全称...

  • 浅谈 Hive 性能优化

    总结了 Hive 的常用优化手段。 列裁剪及分区裁剪 这是最基本的操作。所谓列裁剪就是在查询时只读取需要的列,分区...

  • 浅谈前端性能优化

    前端的性能优化无非是让浏览器渲染不卡顿,让浏览器像服务器一样实现负载均衡。 基本的性能优化: 代码的数量:css尽...

  • 浅谈前端性能优化

    写在前面 前端性能优化是一门很深的学问,作为前端工程师往往会为了优化项目加载的几十毫秒而绞尽脑汁,当然这也是前端面...

网友评论

      本文标题:浅谈性能优化

      本文链接:https://www.haomeiwen.com/subject/jidzdctx.html