以前学生时代,只是完成功能就行,进入公司之后,由于产品的特殊性,需要非常考虑效率,发现有以下几个策略(该文不定时更新):
hash%length==hash&(length-1)的前提是length是2的n次方
当 B满足是2的n次方时,有 A%B == A & (B-1)
使用后者的效率比求余操作高,在对效率要求高的场合,建议使用后者(我目前的应用场景主要是两个,hash桶和ring队列)。
当B满足是2的n次方时, (A + B-1) &  (~(B-1))的结果会是2的n次方,且是向后扩展A的,即表达式结果大于等于A的值,但是保证了是2的n次方。使用这个操作,可以提高malloc的效率,尤其是动态变化的数据结构(ring_buff、ring_queue)时(这个主要用于malloc开辟内存时)。

最新文章

  1. sublime_text_2 ubuntu下无法输入中文 解决方法
  2. 敏捷开发与jira
  3. JMeter学习-032-JMeter常见四种变量简介
  4. Linux开机后 systemd 自动启动 ceph osd mon进程
  5. 基于OpenCv的人脸检测、识别系统学习制作笔记之一
  6. POJ1046Color Me Less
  7. xlslib安装, aclocal-1.13: command not found, 安装升级autoconf-2.65.tar.gz, automake-1.13.tar.gz两个文件
  8. JDBC技术
  9. POJ 1113 Wall (凸包)
  10. 80C51 K1控制D1发光
  11. Hibernate-day03
  12. java-使用icepdf实现pdf转换成png
  13. SpringBoot系列 - 集成JWT实现接口权限认证
  14. Kubernetes部署SpringCloud(二) 部署ZUUL与服务 非host, 伸缩与负载均衡
  15. over(partition by)开窗函数的使用
  16. 谁说delphi没有IOCP库,delphi新的IOCP类库,开源中
  17. 破产姐妹第一季/全集2 Broke Girls迅雷下载
  18. [原]单片机/Stm32教程
  19. linux源码编译安装php出现 cannot find -lltdl
  20. 很有用的PHP笔试题系列三

热门文章

  1. Oracle数据库主外键 级联删除记录
  2. docker启动报错 docker: Error response from daemon: OCI runtime create failed: container_linux.go:348
  3. Python 关于列表字典的键值修改
  4. Cobbler本机使用VM装机配置方法
  5. Layout POJ - 3169
  6. mySql 常用命令 | 珠峰培训例子
  7. Windows Automation API和自动化测试
  8. [iOS] 利用 NSAttributedString 进行富文本处理
  9. 下载 python
  10. 【CSP膜你赛】大逃亡