程序员有很厉害,不外传的代码吗?

有的,而且有不少,很多算法在没有公开前,普通程序员都完全想不明白是怎么做到的。

例如: 80年代就有部分大神级程序员的代码中使用了乘一个magic数字,然后移位,实现实质代替除法的功能,性能很快,代码有效。普通程序员完全不理解这些代码的含义,为啥这样写也能行。实质是除数被除数同时乘以一个2的N次方的数字,那么结果不变,被除数如果是一个常量,那么两个常量相除就得到了magic, 计算时先乘以magic再移位就实现了高性能除法,大约能够有一个数量级的性能提升。

经过很多年后,该技术就慢慢扩散开了,成为不是秘密的秘密,一些编译器内部集成了这些黑魔法。直到intel 九代cpu后,该魔法才彻底在intel cpu上没用了,intel cpu把除法从80个时钟周期压缩到了18个时钟周期。但是江湖上还流传一种新的除法算法,大约比intel十代cpu快一倍,我这边在做内存分配库的free内部计算offset/ref size per bit寻找bit定位时有用,新除法算法的源代码只有三行,非常简单有效,所以,free 才那么快,最小只有7ns, 要知道做一次除法就要18个时钟周期了,那些快到不可思议的库,不少背后是有各种秘密算法的黑科技加持。(注意: 有一些公开文章中的magic不能适配所有整数, 存在工程上的坑,高手都是亲自写代码做全整数覆盖验证,不会轻易乱用)。

最近几年比较出名的黑魔法一个是wait free queue, 尤其是多生产者/多消费者队列,做量化交易领域的部分高手会弄这个东西,知乎上也见过有量化领域的人提到过具体的实现,就一句话的原理。开源的都是最简单的spsc单生产者单消费者队列,一些源码也有bug。写的内存分配库有用这个算法,用于跨线程内存释放。

最新版本16线程并发下,主线程malloc 8字节1000万,传给其它16个线程, 其它线程以生产者方式push到队列,主线程以消费者方式pop出队列,主线程free,五个动作累计,平均开销大约是26ns,是堪称神器级别的多线程并发工具包,有数千行源码,只有很小的并发开销。在内存分配库的测试源码用例的最后有测试。

总之,最近两年写的内存分配库中,已经把自己能够找到的黑魔法都用上了,所以,性能才会比google tcmalloc快一个数量级。

高性能领域,江湖上那些快到不可思议的库,真的打开,里面到处都是黑魔法一样的代码,不少绕了一圈的算法,如果不告诉你这些代码都是干什么用的,基本很难理解原来如此。

举一个例子,写的内存分配库中由于是bitmap算法,会大量使用移位操作,但是源码中没有1<<N的移位,用其它更快的算法代码替换掉了,又是一堆的magic, 移位操作的性能提升了3倍,原因在于intel cpu的内置移位操作单元不足,而现代cpu都是多发射的,导致现代cpu的多发射时移位操作和相关上下文的串行等待,拖累性能表现。intel cpu 12代cpu增加了一倍的移位操作单元(查一下最新改进的说明就明白),才算彻底解决了这个瓶颈。

分享技术

 一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python必备开发工具

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

在这里插入图片描述

三、Python全套PDF电子书

阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

在这里插入图片描述 

四、Python学习视频

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述 

在这里插入图片描述 

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码 【免费获取】    

 

在这里插入图片描述

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值