当前位置:网站首页>不用if分支对同一个变量做判断的方法
不用if分支对同一个变量做判断的方法
2022-07-30 11:07:00 【冬眠的关刀】
对于多条件采用同一变量,取等判断的问题
if a == 1
else if a == 2
else if a == 3
首先,观感上优化,要把1,2,3
这种魔法数字,转化为枚举类型,用有含义的命名来规范,要比直接使用魔法数字好的多。
其次,性能上优化,把多if分支,改为hash方法,比如说用一张hashmap的key来存所有的1,2,3
,把1,2,3
执行的函数,分别写三个函数,把这三个函数的对象存在hashmap的value中,建立映射。
很多软件项目都喜欢用这样的设计方法,
但是这种方法很多情况下也有局限性 ,可能最终的性能优化只是自欺欺人,
把函数执行离散化的同时,也导致函数在内存上的分布更离散,在函数量很大的情况下,有可能导致CPU Cache Miss,需要从内存重新读入分页,导致进入操作系统内核态
边栏推荐
- Swift 常用扩展类和简单封装
- unity3d C#语言基础(继承)
- Neural Network Study Notes 3 - LSTM Long Short-Term Memory Network
- STM32F1 reads MLX90632 non-contact infrared temperature sensor
- XYplorer 23多语言,最好的管理软件之一
- 原生js 创建表格
- 向上管理读书笔记
- 360 released a future-oriented EDR to protect the security of government and enterprise user terminals in an all-round way
- 获取1688app上原数据 API
- spin lock和mutex使用场景的差异
猜你喜欢
随机推荐
[Qualcomm][Network] 网络拨号失败和netmgrd服务分析
Unity 锁定相机第二弹
C language - bitwise operations
Security tip: FreeType in Qt
Oracle中SQL语言和分页rownum分析
oracle 导出dmp文件类型为“故障转储文件”
拖放事件,dataTransfer,getBoundingClientRect
The package of idea is not hollow
干货|语义网、Web3.0、Web3、元宇宙这些概念还傻傻分不清楚?(中)
Taobao/Tmall taobao comments q&a list interface API
FPGA刷题——计数器(简易秒表、可置位计数器、加减计数器)
【HMS core】【FAQ】HMS Toolkit Typical Questions Collection 1
[ASP.NET Core] Dependency Injection for Option Classes
高能产出!腾讯内部的MyCat中间件手册,理论实操齐下
PanGu-Coder: 函数级的代码生成模型
高手云集、丰富活动,斩获佳绩,超过2万名开发者参与的AI社团邀你加入!
面试官:Redis中的布隆过滤器与布谷鸟过滤器,你了解多少?
The configuration process and related syntax of writing markdown format notes in vscode
Performance testing of API Gateway APISIX on Google Cloud T2A and T2D
mysql与redis 区别