半岛·综合体育嵌入式开发接口优化的通用方案批量思想:批量操作数据库,这个很好理解半岛BOB·中国官方网站,我们在循环插入场景的接口中,可以在批处理执行完成后一次性插入或更新数据库,避免多次IO。
异步思想:针对耗时比较长且不是结果必须的逻辑,我们可以考虑放到异步执行半岛BOB·中国官方网站,这样能降低接口耗时。
例如一个理财的申购接口,入账和写入申购文件是同步执行的,因为是T+1交易,后面这两个逻辑其实不是结果必须的,我们并不需要关注它的实时结果,所以我们考虑把入账和写入申购文件改为异步处理。如图所示:
一个很好理解的空间换时间的例子是合理使用缓存,针对一些频繁使用且不频繁变更的数据,可以提前缓存起来,需要时直接查缓存,避免频繁地查询数据库或者重复计算。
需要注意的事,这里用了合理二字,因为空间换时间也是一把双刃剑,需要综合考虑你的使用场景,毕竟缓存带来的数据一致性问题也挺令人头疼。
因为策略轮动的调仓信息,每周只更新一次,所以原来的调接口就去查库的逻辑并不合理,而且拿到调仓信息后,需要经过复杂计算,最终得出回测收益和跑赢沪深指数这些我们想要的结果bob半岛。如果我们把查库操作和计算结果放入缓存,可以节省很多的执行时间bob半岛。如图:
也就是预取思想,就是提前要把查询的数据,提前计算好,放入缓存或者表中的某个字段,用的时候会大幅提高接口性能。跟上面那个例子很像,但是关注点不同。
举个简单的例子:理财产品,会有根据净值计算年化收益率的数据展示需求,利用净值去套用年化收益率计算公式计算的逻辑我们可以采用预处理,这样每一次接口调用直接取对应字段就可以了。
我们都用过数据库连接池,线程池等,这就是池思想的体现,它们解决的问题就是避免重复创建对象或创建连接,可以重复利用,避免不必要的损耗,毕竟创建销毁也会占用时间。
池化思想包含但并不局限于以上两种,总的来说池化思想的本质是预分配与循环使用,明白这个原理后,我们即使是在做一些业务场景的需求时,也可以利用起来。
串行就是,当前执行逻辑必须等上一个执行逻辑结束之后才执行,并行就是两个执行逻辑互不干扰,所以并行相对来说就比较节省时间,当然是建立在没有结果参数依赖的前提下。
比如,理财的持仓信息展示接口,我们既需要查询用户的账户信息,也需要查询商品信息和banner位信息等等来渲染持仓页半岛BOB,如果是串行,基本上接口耗时就是累加的。如果是并行bob半岛,接口耗时将大大降低。
加索引能大大提高数据查询效率,这个在接口设计之出也会考虑到,这里不再多赘述,随着需求的迭代,我们重点整理一下索引不生效的一些场景,希望对小伙伴们有所帮助。
所谓大事务问题,就是运行时间较长的事务,由于事务一致不提交,会导致数据库连接被占用,影响到别的请求访问数据库,影响别的接口性能。
程序结构问题一般出现在多次需求迭代后,代码叠加形成。会造成一些重复查询、多次创建对象等耗时问题。在多人维护一个项目时比较多见。解决起来也比较简单,我们需要针对接口整体做重构半岛BOB·中国官方网站,评估每个代码块的作用和用途,调整执行顺序。
深分页问题比较常见,分页我们一般最先想到的就是 limit ,为什么会慢,我们可以看下这个SQL:
这样优化的好处是命中了主键索引,无论多少页,性能都还不错,但是局限性是需要一个连续自增的字段
sql优化能大幅提高接口的查询性能,由于本文重点讲述接口优化的方案,具体sql优化不再一一列举,小伙伴们可以结合索引、分页、等关注点考虑优化方案。
锁一般是为了在高并发场景下保护共享资源采用的一种手段,但是如果锁的粒度太粗,会很影响接口性能。
关于锁粒度:就是你要锁的范围有多大,不管是synchronized还是redis分布式锁,只需要在临界资源处加锁即可,不涉及共享资源的,不必要加锁,就好比你要上卫生间,只需要把卫生间的门锁上就可以bob半岛,不需要把客厅的门也锁上。
我相信很多接口的效率问题不是一朝一夕形成的,在需求迭代的过程中,为了需求快速上线,采取直接累加代码的方式去实现功能,这样会造成以上这些接口性能问题。
变换思路,更高一级思考问题,站在接口设计者的角度去开发需求,会避免很多这样的问题,也是降本增效的一种行之有效的方式。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。举报投诉
驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。对硬件原理非常清楚,擅长定义各种硬件
的硬件,我们只管设计软件就变成自己的产品了。 4:兴趣所在,干事开心,这是最主要的。 最后,
工具使用一.实验目的二.实验内容三.预备知识四.实验设备及工具(包括软件调试工具)五.实验步骤5.1 交叉编译工具配置及编译5.2arm-linux-gcc编译工具使用5.3 编写
,包括在系统化设计指导下的硬件和软件以及综合研发。除暂且分离硬件的EDA研发以外,侧重的就是在一定硬件条件下的系统化设计和软件研发bob半岛。定义
系统的技术有许多种。本文介绍7个易操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助。
产品的厂商提供基本的底层硬件、系统和驱动等资源,使得用户不需要再投入人力和时间来完成这些底层的工作(
:在已有硬件上移植操作系统,解决软硬件耦合度高导致的问题。(打个比方:软件的实现是为了调用open()函数,那么
系统的技术有许多种。今天给大家介绍7个易操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助。
的特点介绍随着国内第一本RISC-V中文书籍《手把手教你设计CPU——RISC-V处理器篇》 正式上市,越来越多的爱好者开始使用开源的蜂鸟E203
这些年的经验,但一直没能下笔,今天终于下定决心,来对这些年的经验心得进行一个总结,所以bob半岛,先写一个前言吧,来对这些心得进行一个引述半岛BOB。在高考选专业的时候,因为小的时候,家里有
1.分析电路分析驱动电路的方法以及电路的输出方式2.寄存器初始化(配置程序)通过看芯片手册,找到需要配置的寄存器,然后
过程存在安全漏洞问题。在Yocto Project项目中,可以使用许多高效的工具,从而轻松定制
派-HarmonyOS·季(BearPi-HM Nano)是一款由小熊派专为HarmonyOS系统打造的
标准,可接入所有的 E53 案例扩展板。2、主控为WiFi SOC Hi3861,160MHz主频,SRAM 352KB
,来完成一定的功能。就算是将RTOS移植到stm32这种单片机上,也是使用别人的源码,调用API去进行二次
技术更在以前所未有的发展势头走入行业中心,借此契机半岛BOB,电子发烧友网广邀各行业精英、相关专业学生/
近年越来越热,特别是android与linux在手机、平板等许多消费类电子及工业设备中越来越成熟的应用,更是让很多学生及许多原来windows的程序员纷纷转向
进行设备代码的写入及后期的调试,如果采用隔离的或封堵物理端口的方式来进行源代码文件防泄密,就
Copyright © 2012-2025 半岛BOB·「中国」官方网站 版权所有HTML地图 XML地图 鲁ICP备18053584号-2
收到你的留言,我们将第一时间与你取得联系