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

秒杀系统之系统优化

3 系统优化


对于一个软件系统,提高性能可以有很多种手段,如提升硬件水平、调优JVM 性能,这里主要关注代码层面的性能优化——

  • 减少序列化:减少 Java 中的序列化操作可以很好的提升系统性能。序列化大部分是在 RPC 阶段发生,因此应该尽量减少 RPC
    调用,一种可行的方案是将多个关联性较强的应用进行 “合并部署”,从而减少不同应用之间的 RPC 调用(微服务设计规范)

  • 直接输出流数据:只要涉及字符串的I/O操作,无论是磁盘 I/O 还是网络 I/O,都比较耗费 CPU
    资源,因为字符需要转换成字节,而这个转换又必须查表编码。所以对于常用数据,比如静态字符串,推荐提前编码成字节并缓存,具体到代码层面就是通过 OutputStream() 类函数从而减少数据的编码转换;另外,热点方法toString()不要直接调用ReflectionToString实现,推荐直接硬编码,并且只打印DO的基础要素和核心要素

  • 裁剪日志异常堆栈:无论是外部系统异常还是应用本身异常,都会有堆栈打出,超大流量下,频繁的输出完整堆栈,只会加剧系统当前负载。可以通过日志配置文件控制异常堆栈输出的深度

  • 去组件框架:极致优化要求下,可以去掉一些组件框架,比如去掉传统的 MVC 框架,直接使用 Servlet 处理请求。这样可以绕过一大堆复杂且用处不大的处理逻辑,节省毫秒级的时间,当然,需要合理评估你对框架的依赖程度

4 总结一下


  • 性能优化需要一个基准值,所以系统还需要做好应用基线,比如性能基线(何时性能突然下降)、成本基线(去年大促用了多少机器)、链路基线(核心流程发生了哪些变化),通过基线持续关注系统性能,促使系统在代码层面持续提升编码质量、业务层面及时下掉不合理调用、架构层面不断优化改进。
http://www.lryc.cn/news/350368.html

相关文章:

  • 【介绍下Python多线程,什么是Python多线程】
  • FPGA相关论文阅读
  • 瑞芯微RK3588驱动设计之DVP并口摄像头2
  • 安卓手机APP开发__支持64位的架构
  • Foxmail使用经验总结
  • 信息系统项目管理师0601:项目立项管理 — 考点总结(可直接理解记忆)
  • 实验三:机器学习1.0
  • Vue 3 + Vite项目实战:常见问题与解决方案全解析
  • 飞天使-k8s知识点31-rancher的正确打开方式
  • Vue.component v2v3注册(局部与全局)组件使用详解
  • HNU-算法设计与分析-作业5
  • 基础之音视频2
  • 两小时看完花书(深度学习入门篇)
  • 21【Aseprite 作图】画白菜
  • 2024.05.15 [AI开发配环境]个人使用最新版远程服务器配环境大纲:docker、云盘、ssh、conda等
  • opencv 轮廓区域检测
  • 2024-5-16
  • IT行业的现状与未来:技术创新引领时代变革
  • Redis分布式锁【简单版】
  • 18.Blender 渲染工程、打光方法及HDR贴图导入
  • VBA在Excel中部首组查字法的应用
  • ASP.NET MVC 4升级迁移到ASP.NET MVC 5
  • AIGC时代已至,你准备好抓住机遇了吗?
  • 2024CCPC郑州邀请赛暨河南省赛
  • Spring 各版本发布时间与区别
  • 前端模块导入导出方式
  • docker01-简介和概述
  • java数据结构与算法(对称二叉树)
  • [原创](Modern C++)现代C++的std::function, 强大的多态函数包装器(包含std::mem_fn使用方式).
  • 解决间歇性 SSLPeerUnverifiedException 问题