艾莉亚的猫 Time is limited, To be a better man

提高C++性能的编程技术

提高C++性能的编程技术

导读

1

chapter 1

通过实现Trace跟踪,演示了如何提高性能

chapter 2

2.1 RAII实现,继承开销

2.2 说明了Trace类实现,String数据成员的复合开销

2.3 使用的地方再创建c++类对象

2.4 冗余构造,使用显示初始化

王德峰讲座问答

问题:如何通过中国哲学找到自己人生的目的?

我们读中国哲学的典籍,了解儒道佛三家,因为儒道佛三家是中国哲学的主干,后来还合流,到宋明的时候儒道佛三家合流,仍然以儒家为根本。我们为什么要去读这些东西,一个最根本的原因就是中华民族不是一个宗教的民族,虽然这个民族有宗教徒的,但整个民族的文化精神不是宗教精神。我们不是在宗教信仰中安心立命,而人活在这个世界上必须要解决信仰的问题

信仰是什么意思?可以给信仰下这样一个定义:信仰就是对生命价值的确认和对人生意义的领会

那么其他民族都是用宗教来实现,用通过宗教来确认生命的价值,用基督教,用伊斯兰教或者什么教来确认领会人生的意义。比如说一个纯粹的穆斯林,他怎么领会人生的意义,他认为他自己的一生属于安拉属于真主的事业的一部分,他如此领会人生的意义。如果真主有伟大的事业要他去承担,他可以牺牲自己,那叫圣战。这是他们如此领会人生的意义,如此确认生命的价值。

那么我们中华民族向来靠什么安心立命,靠什么来确认我们生命价值和人生意义呢?

对生命价值的确认和对人生意义的领会,世界上各个民族并没有统一的东西,所以在这一点上我们离不开中国哲学。我们今天学中国的哲学,并不是扩大知识面的问题,并不是在我们缺乏人文知识的情况下再补充一点,不是这件事,也可以不扩大视野,也可以扩大视野?不。我们只有在儒道佛三家中我们才能找到安心立命的地方,而儒道佛三家哲学的思想的合流,就是在宋朝和明朝,他的最高成果就是陆象山王阳明的心学,心学是中华民族安心立命的学问。

我们不可能在西方哲学中或者西方的科学中安心立命,这个问题他们不可能回答。而且西方也不是在哲学中安心立命,在基督教。

我想大概回答了这个问题。

专用架构与AI软件栈

本文来自知乎mackler,作者是清华计算机博士,其中是他对于DSA和AI软件栈问题的思考,文章很有洞察力,写得非常棒。

开个新系列,聊一聊专用架构和AI软件栈的问题。这个题目比较大,涉及面非常广,和之前的文章一样,我一般观点都比较激进,对于现有方法的缺点一般是毫不掩饰,各位看官请酌情食用,另外我也会抛出一些全新的解决思路。

这篇文章主要先聊硬件,AI软件栈的复杂性和根本性难题其实主要来源于硬件。如果硬件只是GPU,尤其是是Volta架构之前的GPU,其实AI软件栈根本不用这么复杂,所以我们先来讲讲硬件架构,也是我的老本行。

体系结构领域大的创新其实已经停滞了很多年了,虽然说这么多年硬件的提升一半是靠摩尔定律,一半是靠体系结构革新,作为一个做arch的,我原先也非常相信arch在其中的作用。但实际情况是,arch的“创新”其实很大程度依赖于工艺的演进。arch领域最近几年最常见的论调是摩尔定律要完蛋了,arch即将成为硬件性能的主要推动力,似乎未来架构要在工艺不变的情况下纯靠架构演进原地起飞。实际并不是,脱离了工艺的演进,架构带来收益非常困难!

架构的收益其实更多是工艺演进时,新约束下新tradeoff带来的超额收益。以前我也不明白这一点,因为理论上讲,架构只是电路逻辑,什么工艺下都可以做。但实际上工艺可以打开设计的空间,因为相同的面积功耗限制下,新工艺可以放更多的逻辑,我们就可以把原有架构的各个部分超级加倍,比如cache变大,发射数增大。但随之而来原先架构不突出的问题可能就变得明显,此时就需要调整架构,比如cache太大了就可以再加一级,利用率可以更高,从而获得超额的提升(相比简单根据工艺scale)。所以本质上讲,不同工艺带来的不同约束下,架构设计是有不同tradeoff选择的,所谓架构收益更多是这种新tradeoff带来的超额提升。但如果约束保持不变,其实最佳的tradeoff很快就收敛了,后面想继续靠arch压榨出更多性能就非常困难了。

学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?

曹仰峰老师是北大光华管理教授,著名人力资源管理专家,因华为战马读书社邀请,来讲了《组织韧性-如何穿越危机持续成长》课程,结束后又与大家交流个人韧性与成长,也回答了很多现场和线上同学的提问,还是满接地气的一个学者。

这里记录老师的一小段回答。

论语里面有三句话:“学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?”

这几句话特别重要,我可以简单地说一下,第一句话,原来很多人都理解得稍微有点浅。我读书的时候我们老师教我们说学习要经常复习一下,是很快乐一件事情。当时觉得这玩意儿没错呀,但深想下论语是写给那些古代的领导者的,后来不断地读原文和一些人交流,就发现有的人解读完全不同。他说那个学习的学字,是觉悟的觉,那是个通假字,习不是温习复习,而是进退。习那是个繁体字,是小鸟练习飞翔,一会进一会退。

第一句话,学而时习之,指得什么呢?如果一个人能觉察到与时代同进退,这是大智慧。那你想这句话的理解,这就马上境界就不一样了。

第二句话,有朋自远方来,不亦乐乎。这个朋字啊,繁体字是朋加个鸟,古代对朋友的定义比今天要严格很多,那个鹏指的是共同的志向,是共同干大事的,我们现在朋友一来,一起喝两杯酒,说有朋自远方来,不亦乐乎,喝两杯小酒不叫朋友,严格来讲,不是那个时候的朋友。朋友是要共同干一些大事的人、是共同志向的人。

第三句话,人不知而不愠,不亦君子乎。为什么呢,是因为大多数情况下你很难让每个人都非常的理解你,坦率的讲很难,你不能够老是给自己贴个标签,如果你活在别人的嘴里,活在别人的眼睛里,这样的人生是很悲催的。所以我就觉得认真体悟到这三句话,身上就有无穷的力量。

零拷贝Zero-Copy技术

看到的很好的解释零拷贝的文章,大量优质图示很好理解,写的真是不错啊,转载转载。。

原文转载自微信公众号「后端技术指南针」,作者指南针氪金入口。

扩展阅读:

架构师小秘圈

Kafka和RocketMQ底层存储:零拷贝技术

原来 8 张图,就可以搞懂零拷贝了

RDMA技术详解(一):RDMA概述

前言

像大白这种调包侠,深知不懂底层技术点就如同空中楼阁,再这样下去面阿里p10是没希望了。

想到这里,我开始慌了,所以今天和大家一起学习个底层技术点-零拷贝Zero-Copy。

Linux系统中一切皆文件,仔细想一下Linux系统的很多活动无外乎读操作和写操作,零拷贝就是为了提高读写性能而出现的。

废话不多说,马上开大车,走起!

数据拷贝基础过程

在Linux系统内部缓存和内存容量都是有限的,更多的数据都是存储在磁盘中。对于Web服务器来说,经常需要从磁盘中读取数据到内存,然后再通过网卡传输给用户:

1

上述数据流转只是大框,接下来看看几种模式。