性能优化的核心思路,纯干货分享!

news2024/11/17 3:42:13

前言

平时技术交流的时候,很多同学都会问一些性能优化方面的问题。
比如:

有一张订单表为了保持订单记录,更新数据时不能删除,需要打算加上版本号,查询时取版本号最新的给前端,还有场景是查询订单历史给前端。 订单表量一般不会太小,每次先分组查询取出最大的一条,然后外层再去取对应的数据再分页显然性能不好。 怎么办?
可能也会有人会给出一些建议,然后呢?下次在遇到怎么办?

网上很少有文章系统讲解性能优化的相关方法论,所以借着这次机会总结出来,分享给大家。

俗话说授人以鱼不如授人以渔,本文将自己的性能优化方法论总结在这里,将自己理解的性能优化的概念和核心思想整理在这里,帮助大家能系统地应对性能优化方面的问题,能够更清晰地理解性能优化的原则。

在这一块感兴趣或者有疑虑的朋友可以和我交流啦,所有的详细版本资料已经整理成PDF了,有需要的朋友可以扫描下方二维码,免费获取更多相关资料。

第一章、设计思想与代码质量优化

设计思想中的性能优化关注于如何使系统更加高效、快速地运行。在代码质量优化中,这包括优化算法、减少内存占用、提高I/O效率等方面。例如,通过使用更高效的数据结构、减少不必要的计算、优化数据库查询等方式来提高代码的执行效率
一、六大原则
1、单一职责原则
2、里氏替换原则(Liskov Substitution Principle)
3、依赖倒转原则(Dependence Inversion Principle)
4、接口隔离原则(Interface Segregation Principle)
5、迪米特法则(最少知道原则)(Demeter Principle)
6、合成复用原则(Composite Reuse Principle)
在这里插入图片描述

二、设计模式
1、结构型模式
2、创建型模式
3、行为型模式
在这里插入图片描述

三、数据结构
1.数组
2.栈
3.队列
4.链表
5.树
6.图
7.堆
8.散列表
在这里插入图片描述

四、算法
4.1排序算法
4.2查找算法
在这里插入图片描述

第二章、程序性能优化

一、启动速度与执行效率优化
1.冷启动和热启动解析
2、APP启动黑白屏解决办法
3、APP 卡顿问题分析及解决方案
4、启动速度与执行效率优化之StrictMode
在这里插入图片描述

二、布局检测与优化
1、布局层级优化
2、过度渲染
在这里插入图片描述

三、内存优化
在这里插入图片描述

四、耗电优化
在这里插入图片描述

五、网络传输与数据存储优化
在这里插入图片描述

六、APK大小优化

在这里插入图片描述
七、序
在这里插入图片描述
八、OOM问题原理解析
在这里插入图片描述

九、ANR问题解析
在这里插入图片描述

十、Crash监控方案
在这里插入图片描述

第三章、开发效率优化

一、分
1,企业高效持续集成平台场景介绍
2,GIT分布式版本控制系统
3,GIT分支管理
在这里插入图片描述

二、自动化构建系统Gradle
在这里插入图片描述

第四章、APP性能优化实践

一、启动速度
二、流畅度
三、抖音在APK包大小资源优化的实践
四、优酷响应式布局技术全解析
五、网络优化
六、手机淘宝双十一性能优化项目揭秘
七、高德APP全链路源码依赖分析
八、彻底干掉OOM的实战经验分享
九、微信 Android终端内存优化实践
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1656208.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI日报|Stack Overflow和OpenAI达成合作,Apple正在为数据中心开发人工智能芯片...

欢迎大家在 GitHub 上 Star 我们: 分布式全链路因果学习系统 OpenASCE: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE 大模型驱动的知识图谱 OpenSPG: https://github.com/OpenSPG/openspg 大规模图学习系统 OpenAGL: https://github.com/TuGraph-…

自注意力架构大成者_Transformer(Pytorch 17)

1 模型简介 在上节比较了 卷积神经网络(CNN)、循环神经网络(RNN)和 自注意力(self‐attention)。值得注意的是, 自注意力同时具有并行计算和最短的最大路径长度这两个优势。因此,使…

linux 性能监控命令之dstat

1. dstat 系统默认为安装,直接安装阿里源后,yum install -y dstat安装即可,该命令整合了 vmstat , iostat 和 ifstat,我们先看下效果: 我们先看看具体参数: [rootk8s-master ~]# dstat --help …

解决ModuleNotFoundError: No module named ‘skfuzzy‘,这个库全名可不叫skfuzzy哦,否则直接报错!!

ModuleNotFoundError: No module named skfuzzy 在这里插入图片描述在这里插入图片描述如何解决 ModuleNotFoundError: No module named skfuzzy 的问题?skfuzzy 模块介绍什么是模糊C均值聚类?skfuzzy 的应用如何使用 skfuzzy 进行模糊聚类 结论 如何解决…

电子学会C/C++编程等级考试2024年03月(二级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:满足条件的数的累加2 现有n个整数,将其中个位数为k的数进行累加求和 输入 第一行一个整数n。第二行n个非负整数,以空格分割,每个数不大于100000。第三行一个整数k。 输出 输出满足题目要求的累加和 样例输入 10 2 5 7 17 11 18 4…

YOLOv8独家改进:backbone改进 | 轻量化之王MobileNetV4 开源 | Top-1 精度 87%,手机推理速度 3.8ms,原地起飞!

💡💡💡创新点:轻量化之王MobileNetV4 开源 | Top-1 精度 87%,手机推理速度 3.8ms,原地起飞! MobileNetV4(MNv4),其特点是针对移动设备设计的通用高效架构。创新1):引入了通用倒瓶颈(UIB)搜索块,这是一个统一且灵活的结构,它融合了倒瓶颈(IB)、ConvNext、…

如何用mathtype7? MathType7数学公式编辑器使用图文教程2024最新

在我们的日常工作中,经常会使用和编辑到数学公式,那么我们该怎么编辑数学公式呢?今天我们就来看看 MathType7的使用方法 强大的MathType软件是一款适用于Windows和Mac的交互式方程编辑器,你可以为网页、出版物、说明以及TeX、LaT…

用HAL库改写江科大的stm32入门例子_1、按键控制led灯

使用STM32CubeMX生成Keil工程并完成流水灯 ,就不重复了:直接参考: 使用STM32CubeMX生成Keil工程并完成流水灯 进入主题,用中断实现,操作步骤如下: 1 如下图设置PB11 管脚 2 设置PB11为下降沿中断: 3 PA…

使用 electron-vite-vue 构建 electron + vue3 项目并打包

文章目录 一、使用 electron-vite-vue 构建 Vue3 项目1、创建项目并安装相关依赖2、安装依赖时报错 (operation not permitted) 二、项目打包1、执行打包命令2、下载失败处理3、手动方式下载后,将文件放至指定路径下4、打包成功后 参考资料 一、使用 electron-vite-…

Google Chrome浏览器便携增强版 v124.0.6367.61

01 软件介绍 Google Chrome v124.0.6367.61,这一版本经过精心设计,集成了一系列的功能增强和关键补丁,旨在提升用户体验。其中,Chrome引入了便携性数据保存选项,优化了标签页及标签栏的操作机制。此外,它还…

【Linux 性能详解】CPU性能篇

目录 平均负载(Load Average) CPU上下文切换 进程上下文切换 线程上下文切换 中断上下文切换 中断 硬中断 软中断 CPU使用率 性能分析工具 平均负载(Load Average) 平均负载?这个词对很多人来说&#xff0c…

参数化建模系列-cityengine篇之:如何基于GIS数据快速构建道路三维建模模型

结合上期介绍的基于GIS数据自动化构建城市三维建筑模型,本期在上期的知识点上继续介绍道路模型的自动化构建方法。 数据获取 本期道路自动化建模从获取道路数据开始。 首先打开“QuickOSM”插件,在“Key”中选择“highway”;其次选择数据范…

AI智能化逐渐趋于成熟后,预测今后最吃香的开发职业

AI智能化正在成熟的路途中,这中间会有波折,但终有一天会来的,我相信等到了这一天,我们的开发效率和代码质量,将会大大不同,而我们的团队与个人,也会面临着很棒的体验。 那么在AI智能化真正趋于成…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-15-GPIO中断控制实验

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

Failed to build flash-attn:ERROR: Could not build wheels for flash-attn

安装 FlashAttention 的时候遇到报错: Failed to build flash-attn ERROR: Could not build wheels for flash-attn, which is required to install pyproject.toml-based projects可能是安装的版本与环境存在冲突吧,我的环境是: python 3.1…

域控安全 ----> Ntds.dit文件抓取

大家还记得内网渗透的初衷吗??? 找到域馆,拿下域控!! 拿下了域控就是拿下了整个域!! 但是大家知道拿下域环境之后应该怎么操作吗(灵魂拷问)??? …

【WEEK11】 【DAY3】员工管理系统第四部分【中文版】

2024.5.8 Wednesday 接上文【WEEK11】 【DAY2】员工管理系统第三部分【中文版】 目录 10.5.展示员工列表10.5.1.修改dashboard.html10.5.2.新建EmployeeController.java10.5.3.新建emp文件夹,将list.html移动至该文件夹10.5.4.重启并检查10.5.5.提取公共页面&#x…

钉钉开放平台创建企业内部H5微应用或者小程序

前言: 在当今企业数字化转型的浪潮中,创建企业内部H5微应用或小程序已成为提升工作效率和促进内部沟通的重要举措。发话不多说本文将介绍如何利用钉钉平台快速创建这些应用,让企业内部的工作更加便捷高效。 步骤 1.在浏览器打开链接…

旧物回收小程序开发:打造绿色生活,共筑美好未来

随着环保意识的逐渐增强,我们越来越意识到旧物回收的重要性。为了响应这一趋势,我们精心研发了一款旧物回收小程序,旨在通过科技的力量,让每个人都能够轻松参与到旧物回收的行动中来,共同为地球环保贡献一份力量。 一…

【C++】Visual Studio 2019 给 C++ 文件添加头部注释说明

使用代码片段管理器&#xff0c;添加快捷插入代码文件说明 1. 效果 2. header.snippet 新建 header.snippet 文件&#xff0c;存放到某个文件夹 内容&#xff0c;自行更新 快捷名称&#xff0c;修改 Header 里面内容注释内容&#xff0c;修改 Code 里面内容 <?xml ver…