如何让一个技术小白搞懂二分法检索?
|
Martin Fowler:任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。 大家闭着眼睛想一下什么是好代码?也许你的脑海中漂浮着一堆词:干净、整洁、命名规范、注释合理、高内聚低耦合…… 人人都想写好代码,因为看好代码就如同看一位五官端正的女子,心情愉悦、舒畅,而看糟糕的代码就如同看见腐烂的食物,闻起来也有一股坏味道。 大多数人写的代码都不能称之为好代码,一方面由于自己技能限制,另一方面也可能根本就分不清好代码和坏代码,下面笔者结合日常编码实践与大家分享一下常见的代码坏味道。 坏味道:Long Method(过长函数) 过长函数简而言之就是函数长度超标了,包括横向和纵向。 为什么过长函数是一种坏味道? 横向过长会导致无法一眼就能看出这行代码的作用,需要用鼠标慢慢往后边拖,相信用小屏幕的小伙伴经常会遇到这个问题,拖动的过程会严重影响读代码的效率。 纵向过长其实就是出现了大函数,一个函数的行太多,使得函数难以读懂,代码修改难度大。 那么如何解决过长函数问题呢? 关于横向过长的问题,一般会在 IDE 中提前配置好最大宽度,比如80字符或者120字符(具体根据公司内部规范设置),然后格式化代码即可解决。
比如我们在写 Java8 stream 链式表达式的时候可以会很长: 但是,说说还是挺容易的,理论到实践中间还隔着性能损耗。 在进行多次数据拷贝过程中,单线程的 Redis 只能干等着,无法响应客户端的请求。这时候只能干瞪眼,性能太受影响。 凉,那该咋整?!别急,有缓解的策略,你接着往下看。 Redis 中有专门的参数设置用来进行自动清理内存碎片:activedefrag yes。 这个命令是启动清理功能的,这还不够,Redis 中还需要其他的条件限制才能够进行清理。 下面参数都是满足任一条件后就可以进行清理:
碎片达到100MB时,开启清理。
当碎片超过 10% 时,开启清理。
内存碎片超过 100%,尽最大清理。 在处理的过程中,为了避免对正常请求的影响,同时又能保证性能。Redis 同时还提供了监控 CPU 占用比例的参数,在满足以下条件时才会保证清理正常开展:
清理内存碎片占用 CPU 时间的比例不低于此值,保证清理能正常开展。
清理内存碎片占用 CPU 时间的比例不高于此值。一旦超过则停止清理,从而避免在清理时,大量的内存拷贝阻塞 Redis,导致其它请求延迟。 总结 查看内存使用情况
内存碎片导致原因
如何解决内存碎片
(编辑:孝感站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
