全栈
文章平均质量分 93
beyondma
一个温柔的程序员爸爸
展开
-
小学生容易理解的Rust的Future、Linux的Epoll,为什么程序员这么难学?高并发背后的殊途同归!
今天我们继续高并发的话题,在上次的博客中我们有提到,Rust的Future机制非常有助于程序员按照更为自然、简洁的逻辑去设计系统,我们必须要知道高并发系统的关键在于立交桥的分流与导流构造而非信号灯的限流。因此把精力放在设计锁、互斥系这些信号系统上是非常事倍功半的。从机制上来讲Rust从函数式语言借鉴而来的Future机制是先进的,而且从亲身教小孩编程的时候笔者意外发现,对于没有任何编程经验的人来说,他们学习async/await的成本,要比理解层层回调的机制要低得多。程序员在学习Future的难度大..原创 2021-08-07 10:51:43 · 844 阅读 · 1 评论 -
一行“无用”的枚举反使Rust执行效率提升10%,编程到最后都是极致的艺术!
最近不少读者都留言说博客中的代码越来越反哺归真,但讨论的问题反倒越来越高大上了,从并发到乱序执行再到内存布局各种放飞自我。其实这倒不是什么放飞,只是Rust对我来说学习门槛太高了,学习过程中的挫败感也很强,在写完了之前的《Rust胖指针胖到底在哪》之后笔者一度决定脱坑Rust了,但截至本周这个目标还是没有实现,因为我所在的Rust学习群,有一个灵魂拷问,Rust的技术本质什么?不回答好这个问题,我简真是没法得到安宁。Rust枚举的本质到底是什么?1.枚举与一般变量定义的比较.原创 2021-07-11 11:28:46 · 3347 阅读 · 8 评论 -
从内存布局上看,Rust的胖指针到底胖在栈上还是堆上?
最近我在前辈巨师的带领下,也进入到学习Rust的大军中,与其它语言一样,Rust最初的爬坡难点也在于字符串方面的处理。虽然说Rust与C一样也有指针概念,但是在字符串方面引用了胖指针,关于胖指针的内存布局,被引用最为广泛的一幅说明图如下:咱们先来说明一下这个胖指针的大致概念,字符串s1有三个元素分别是ptr、len、capacity,其中ptr是指向堆上实际字符串value的指针,len代表字符串的长度,capacity代表字符串的容量。这些值全部都存在栈上,而实际字符串的值则存在堆上。为了..原创 2021-07-04 12:52:57 · 2054 阅读 · 2 评论 -
终于把之前的坑填上了:远看像乱序执行,其实是内存屏障的BUG,如何用汇编搞定?
前几天我发布了《几种主流语言的高并发实现的比较,Serverless时代Rust即将迎来春天》后,针对热心读者的回复针对他所提出的问题我又总结了一篇文章《一顿操作猛如虎,一看结果却是0》,其中我对于多并发操作,结果却还是0的情况给出了多核竞争冲突的解释,结果一石击起千层浪,再次收到很多热心读者的反馈,其中有几个回复特别值得一说。单核环境y也是0:其中一位非常细心的读者针对这个多核竞争造成问题的结论进行了验证,亲身在单核的环境ECS上实验,结果发现结果照样y=0。后发先至:另外一位读者则给出了一个..原创 2021-06-26 13:01:32 · 2548 阅读 · 3 评论 -
一顿操作猛如虎,一看结果还是0,Rust能避免Go的BUG?
Google此前谈到Linux内核的未来与Rust的关系时曾表示,Rust现在已经准备好加入C语言,成为实现内核的实用语言。它可以帮助减少特权代码中潜在的bug和安全漏洞,同时与内核也配合得很好,可以很大程度上保留其性能特性。...原创 2021-06-19 12:48:46 · 2434 阅读 · 15 评论 -
C和Java没那么香了,Serverless时代Rust即将称王?
我们上文中介绍了GO语言封装了所有的系统调用,因此凡是被阻塞的操作,都能被调度器感知,通过阅读goroutine的代码位置在GOPATH\src\runtime\proc.go中,其中retake函数的功能是实现抢占式调度,调度逻辑如下,首先如果目前正在运行的goroutine被阻塞那么即可直接让度CPU,不需要抢占。如果正在运行的goroutine距上次调度的时间超过了一定的阈值,那么就调用preemptone函数,强制使当前处于运行态的goroutine出让CPU并加入全局就绪态的队列中。然后.原创 2021-06-13 11:26:39 · 33602 阅读 · 61 评论 -
巨头王炸不断,硬核解读芯片技术路线
上周我在博客发布了一篇《龙芯自主指令集到底强在何处》的文章,虽然这只是一篇临时起意之作,信息有限的拙作,不过最近整个半导体行业实在风起云涌,上周四IBM推出了2nm的芯片,苹果春季发布会上这次苹果发布会上搭建M1的IPad Pro再度炸场、四月中旬ARM推出了新一代的ARMv9、英特尔也拿出了最的至强三代Ice Lake-SP,四月初英伟达推出号称能将AI算力提升10倍的CPU芯片Grace,年初AMD的ZEN3系列芯片也正式亮相,接下来笔者就带大家解读一下半导体的巨头们到底打的什么技术牌。指令集...原创 2021-05-15 09:57:15 · 8360 阅读 · 17 评论 -
人生苦短,开发用云-如何优雅完成程序员的侠客梦
Coding的魅力如此之强,引无数程序员竞折腰,在今年由CSDN举办的1024程序员节上,中国初代程序员大宗师求伯君说,当年看到有人在用WPS,可开心了,因为有很多人用。然后,也会去找看是谁破解的,于是就这么认识雷军的,目前我虽然退休了,还在写代码,写游戏代码,不是商业软件....其实是写外挂,这个不好意思拿出来炫耀但确实可以让游戏简单点嘛。让自己的代码,自己的项目广泛流传可以说是每一位程序员的最高目标。工欲善其事,必先得其器,一款得心应手的编程工具,对于程序员来说无疑是效率神器,可以令开发工作事半功倍原创 2021-01-11 10:31:10 · 829 阅读 · 0 评论 -
从Nginx到Pandownload,程序员如何避免面向监狱编程
据扬州网警巡查执法官方消息,百度网盘破解版Pandownload开发者已被抓,同时百度网盘官方于今日凌晨对此事做出了回应。百度官方表示一直积极配合警方,严厉打击侵犯百度网盘用户数据隐私的犯罪行为。同时,百度网盘也会持续通过技术不断提升用户体验。而据笔者看到Pandownload的作者实现以非会员权限突破百度网盘官方设定,实现高速下载的功能坦率的讲这个功能其实还好,因为从Github上看实...原创 2020-04-16 12:19:22 · 37480 阅读 · 126 评论 -
如何避免损失20亿的删库事件再次发生
微盟昨日晚间发布公告, 截止到3月1日晚8点,在腾讯云团队协助下,数据已经全面找回。微盟表示,由于此次数据量规模非常大,为了保证数据一致性和线上体验,将于3月2日凌晨2点进行系统上线演练,将于3月3日上午9点数据恢复正式上线。针对事故给商家造成的影响,微盟表示,管理层深感自责和愧疚,准备了1.5亿元人民币赔付拨备金,其中公司承担1亿元,管理层承担5000万元。从事故经过中可以看到从2...原创 2020-03-03 14:45:23 · 9173 阅读 · 12 评论 -
华为全栈人工智能-AI发展新趋势
近日谷歌在其最近发布的论文中提出了新一代的NLP预训练模型T5,其整个模型的参数数量达到了惊人的 110 亿,再次刷新 Glue 榜单。从目前的情况来看,从OPEN AI的GPT-2到谷歌的XLNET、ALBERT以及百度的ERNIE,人工智能的模型迭代速度越来越快,但是模型的参数规模与训练成本也随之水涨船高,平均刷榜模型的训练成本都高达数十万人民币之巨。甚至谷歌的科学家在T5的论文指出:“...原创 2019-11-09 18:09:07 · 4623 阅读 · 0 评论