当前位置:网站首页>不用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,需要从内存重新读入分页,导致进入操作系统内核态
边栏推荐
- Drools 规则引擎一文读懂
- Static LED display developed by single chip microcomputer
- 现在报PMP还来得及参加9月的考试吗?分享敏捷全真模拟题
- Native js create table
- ABP学习资源整理
- log4j中appender的简介说明
- Voltage relay HDY - vac - 1 A / 1-220
- @RequestBody 和 @ResponseBody 详解
- 基于.NetCore开发博客项目 StarBlog - (16) 一些新功能 (监控/统计/配置/初始化)
- "Learning Cloud Networking with Teacher Tang" - Problem Location - The host is working but the container is not working
猜你喜欢
随机推荐
Swift common extension classes and simple encapsulation
API 网关 APISIX 在Google Cloud T2A 和 T2D 的性能测试
【JZ64 求1+2+3+...+n】
VLAN相关知识点
电流继电器JL-8GB/11/AC220V
Static LED display developed by single chip microcomputer
【HarmonyOS】【ARK UI】HarmonyOS ets语言怎么实现双击返回键退出
现在报PMP还来得及参加9月的考试吗?分享敏捷全真模拟题
R语言怎么绘图(一个r语言完整的命令有什么)
Neural Ordinary Differential Equations
"Learning Cloud Networking with Teacher Tang" - Problem Location - The host is working but the container is not working
真正懂经营管理的CIO具备哪些特质
WebAPI 复习
360闷声干大事获赞无数,数字安全如何保障?还得看企业安全云
数据库性能系列之索引(上)
Taobao/Tmall taobao comments q&a list interface API
typescript入门之helloworld
还在用Swagger?我推荐这款零代码侵入的接口管理神器
Log4j additivity属性简介说明
TensorFlow自定义训练函数








