性能优化的本质

简介: 资源与时间的兑换 cache 空间资源与时间的兑换-- 提前计算,cache结果-- cache到内存中, 更快的内存空间换取时间-- 数据库设计中的反规范化设计, 通过增加冗余字段,减少子查询 -- 空间换取时间-- 网页中的静态化cache, 动态网页生成结果cache -- 空间换取时间集群,读写分离,主从库等.

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

1. 资源与时间的兑换

cache 空间资源与时间的兑换

  • 提前计算,cache结果
  • cache到内存中, 更快的内存空间换取时间
  • 数据库设计中的反规范化设计, 通过增加冗余字段,减少子查询 -- 空间换取时间
  • 网页中的静态化cache, 动态网页生成结果cache -- 空间换取时间

集群,读写分离,主从库等. 计算资源与时间的兑换

  • 3台机器的工作,分配给5台机器做.
  • 数据库的读写分离, 主从设计

2. 尽可能合理的利用硬件特性

  • 汇编语言中使用寄存器
  • 内存cache
  • 存储中的磁盘RAID
  • HD硬盘与SSD硬盘的选择
  • 图像计算中尽可能的使用显卡特性
  • 针对特定场景的硬件设计来加速计算或者执行, 如: GPU, AI智能芯片, DSP等

3. 流程中各个环节的均衡,并行和顺序的调整

  • 寻找性能瓶颈并且将计算前移或者后移
  • 系统在线更新时引起的更新风暴, 分批,分区,分时更新.
  • 集中的事情分散开来做. 如: 秒杀中的排队(缓存, 分散, 水平扩展) -- 并发
  • 硬件便宜, 好的优化人员难找. 添加更多的硬件来提高系统的吞吐能力. -- 均衡
  • DNS仅网址和IP的查找, 应用链中工作量小, 可以考虑把动态服务分派, 负载均衡的工作放到dns中.

4. 减少不必要的浪费

多给, 需要2个字段给了5个字段

  • 网络中传送不必要的数据.
    比如: 开发人员为了省事, 把这个表的数据集传送给了前端, 而实际上前端只是需要id和name两个字段.

多做, 冗余的计算步骤

  • 不必要的循环比较
  • 可精简的计算
    比如: 动态网页中相对稳定的页面信息. 不用每次动态生成. 可以根据数据更新频率, 1小时? 4小时? 动态生成一次, 保存为静态网页. 减少了计算频率, 减少了不必要的计算资源浪费; 同时, 空间换取时间.

5. 算法--面对各种应用场景经过优化而沉淀下来的应用模式

相关文章
|
5天前
|
消息中间件 缓存 NoSQL
如何做性能优化?
如何做性能优化?
|
5天前
|
NoSQL 算法 Java
后端接口性能优化分析-程序结构优化(中)
后端接口性能优化分析-程序结构优化
42 0
|
5天前
|
NoSQL Java Redis
后端接口性能优化分析-程序结构优化(上)
后端接口性能优化分析-程序结构优化
172 0
|
5天前
|
监控 Java Android开发
构建高效Android应用:从内存管理到性能优化
【2月更文挑战第30天】 在移动开发领域,打造一个流畅且响应迅速的Android应用是每个开发者追求的目标。本文将深入探讨如何通过有效的内存管理和细致的性能调优来提升应用效率。我们将从分析内存泄露的根本原因出发,讨论垃圾回收机制,并探索多种内存优化策略。接着,文中将介绍多线程编程的最佳实践和UI渲染的关键技巧。最后,我们将通过一系列实用的性能测试工具和方法,帮助开发者监控、定位并解决性能瓶颈。这些技术的综合运用,将指导读者构建出更快速、更稳定、用户体验更佳的Android应用。
|
5天前
|
缓存 小程序 前端开发
小程序 如何做性能优化?
小程序 如何做性能优化?
|
5天前
|
缓存 Java 应用服务中间件
后端接口性能优化分析-程序结构优化(下)
后端接口性能优化分析-程序结构优化
54 0
|
7月前
|
缓存 固态存储 程序员
性能第二讲:性能优化-每个程序员都应该知道的数字
性能第二讲:性能优化-每个程序员都应该知道的数字
|
9月前
|
编译器 C++ Anolis
性能优化特性之:PGO
本文介绍了倚天实例上的编译优化特性:PGO,并从优化原理、使用方法进行了详细阐述。
|
9月前
|
存储 编译器 C语言
性能优化特性之:LTO
本文介绍了倚天实例上的编译优化特性:LTO,并从优化原理、使用方法进行了详细阐述。
|
10月前
|
存储 缓存 JavaScript
我工作中用到的性能优化全面指南(1)
在Web开发中,Web的性能优化是一个重要的话题。无论是页面加载速度,用户体验,或者是程序运行效率,都与Web的性能优化息息相关。 最小化和压缩代码 在构建过程中,为了减少文件的大小和加载时间,通常会对JavaScript代码进行最小化和压缩处理。这包括移除不必要的空格、换行、注释,以及缩短变量和函数名。工具如UglifyJS和Terser等可以帮助我们完成这个任务。
48 0
http://www.vxiaotou.com