前几次的C++大会都是在上海,今年首次移师北京。会议的时间是11月17和18(周五六)两天。我本来预定了周四从上海到北京的高铁,但是突然有事要到武汉,于是只好从武汉再到北京。武汉到北京的高铁先是定了个夜里11点多到北京的。到了武汉后,把武汉的行程缩短了一些,于是又把车票改早3个小时,改成下午3:45分出发的G68。多谢C++组委会的工作人员,对我的接连改票非常耐心。

晚上8:40分,高铁准时到北京西站,在赶往酒店的路上,已经到了酒店的一位朋友邀我吃饭,高铁上只吃了几个在武汉午饭打包的烧饼,正饥肠辘辘,于是直接到老城一锅,吃了一顿羊蝎子。:-)

吃好夜宵入住酒店。这次的酒店在王府井的金茂万丽,与我喜欢的几个文化地标都非常近。马路对面就是北京人艺,人艺略南一点就是商务印书馆,还有逛过多次的涵芬楼书店。再往南一点还有老舍故居。

上一张夜幕中的酒店外景图吧。

酒店前台的背景墙装饰着很多书,虽然看起来很假,但是读一读那些经典的书名,对老雷来说也是一种享受。《史记》,《资治通鉴》,《四库全书》......

电梯和房间的小装饰也很合老雷的意,小狮子,原木镜框,颇有古风的陶瓷战马......

大会在周五早上9:20分准时开始,开场的短片很好看,题目叫《致敬程序员》。短片按时间顺序,回顾了软件和计算机科学发展的一些重要里程碑,从第一个程序员Ada开始,到图灵,冯诺依曼......每一页包含有人物的照片,以及他们所做的重要贡献。

短片后是建忠代表会议主办方致辞,一如既往的技术范,谦虚儒雅的开场后便请会议的四位出品人上台。

抱歉这张照片的效果比较差,因为老雷坐的有点远,而且是手机拍的。官网上应该有大图吧。

简短的开幕致辞后,便是上午的第一个keynote演讲。讲者为Michael Spertus。Mike是ISO C++标准委员会资深成员,目前是Symantec的技术院士与首席科学家,负责云端安全服务,同时在芝加哥大学任教。Mike曾创办 Geodesic,后被VERITAS收购。

Mike演讲的题目是:《C++17: 我们有了一个新语言,这对我意味着什么?》

从C++11开始,C++标准以每三年一个版本的速度发展,版本号即以年份标识,已经发布的三个版本分别为C++11, C++14, C++17。2017年刚好是C++17的发布之年,于是在本届C++大会上介绍C++17很是顺理成章。

Mike讲义的第一页的题目是《C++17:我们确实有一个新语言》。

关于“新语言”的说法,或许值得咬文爵字一下。从一般的认知上,C++17不能算是一门新语言,因为C++语言由来已久,它只是C++语言的一个“新版本”。但是Mike这样来自C++标准委员会的人把它称为一门新语言,也颇意味深长。首先这肯定不是笔误,也一定不是头脑一热,突发奇想这么称呼。或许是从编译器的角度吧。也或许是”行文“方便。后悔忘了在昨晚一起吃晚饭时当面和Mike先生求证了。

Mike首先颇有哲学高度地解释了“怎样才能创造一件伟大的东西”。不是把以最快的速度加入最多的功能,而是通过优雅的(elegant)设计让可用的功能最多。还举了青花瓷瓶的例子。这显然是为了反驳那些认为C++17新增的功能不够多的观点。

接下来Mike画龙点睛地指出C++17的宗旨(工作重点),是要把C++变得更强大和更清洁。

随后,Mike举例介绍了C++17的部分关键特征来解说上诉宗旨。首先重点介绍了提高程序性能的新增支持,一个是与硬件的密切结合,另一个是并行方面的增强。对于前者,Mike举的例子是新增的关于cache line的两个常量。

namespace std {// ...// 18.6.� Hardware interference sizestatic constexpr size_t hardware_destructive_interference_size = implementation-defined;static constexpr size_t hardware_constructive_interference_size = implementation-defined;// ...}

简单来说,应用程序的C++代码可以通过这两个常量来取得当前处理器的cache line长度。然后在这个长度的指导下定义结构体和安全数据访问。更细节的介绍,可以参考当初提议这个功能的邮件:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html

Mike先生归纳上诉新增功能的话很经典,值得引用一下:“C++已经给我们强大的能力来控制内存,现在它又能理解cache了。”

在并行方面,Mike引用了Sean Parent的惊世骇俗之语:对于现代计算机来说,一个核的处理能力还不到系统总能力的1%;多核也不过占不到10%;加上SIMD向量化,差不多有25%;只用同时使用了GPU后才完全使用了100%的算力。

为了解释C++17如何让程序变得更清洁,Mike介绍了新引入的string_view类型,在此不再赘述了。

上午有两个keynote,Mike下场后,上场的是侯捷老师。中间休息时,播放了介绍侯老师的一个短片,内容除了侯老师在各地演讲的照片外,还有一些工作之余的生活照,包括山居岁月时手持镰刀除草的照片。

在大会议程上,侯老师演讲的主题名为“Move-aware class之水落石出”,正式演讲时,标题略作修改,变为《Move语意剖析与实力观察》,副标题叫“山高月小,水落石出”。

这些年,差不多每年与侯杰老师见一次面。每次听他演讲,都还是受到新的启发。侯老师的ppt有几个特点,代码多,线多,图多,大多数页的内容都很满,可以讲很久,也需要听者花比较多的时间来体会和消化。因此,侯老师几次停下来给大家思考“10秒钟”或者20秒。

侯老师的这种ppt风格在其它一些台湾同行的ppt里也时常见到,不知是何人所创。:-)

考虑到侯老师的粉丝众多,再上一张侯老师演讲时的照片吧。

吃过午饭后,出酒店呼吸室外的空气,忍不住想到老舍估计看一下。听说在维修,所以只能是门口看一下,因此不需要太多时间。

多年前听出版社一位朋友的介绍,第一次去老舍故居,后来又经常到老舍家门口的民福居饭店吃饭。

只步行7分钟就到了,果然是维修闭馆。胡同里一些工人在施工,似乎是改造电线。

(这张照片被放倒了,真不明白T同行们怎么就不给编辑页面加个旋转图片的功能,或者用AI自动识别一下?没有办法,大家活动一下颈椎吧)

我的演讲安排在第一天的下午2:00 - 4:00,最初的题目是《在调试器看glibc堆和Valgrind》,后来考虑到不够明确,又加了个标题叫《Linux应用内存管理与错误诊断》。

当我开讲时,投影突然出了点问题,所以我只好在没有ppt的情况下做了一些介绍。投影正常后,为了节约时间,只好把前面暖场和自我介绍的几页很快跳过。但还是被眼疾手快的老朋友咏炜抓拍到了老雷照片投在大屏幕上的那个短暂时刻。

我讲的主要内容分成两大块,一块是如何上调试器认识LINUX下的glibc堆,包括堆的详细布局、从内核批发内存的方法,以及分配和释放过程。

另一块是如何调试常见的堆错误,包括多次释放、溢出和野指针等。介绍的主要工具是Valgrind。

我讲完后,便在会场1坐下来,聆听蒋豪良分享他的C++代码优化实践,他在悉尼工作,远道而来。他的演讲也是分上下两个部分,结合实际代码,谈编译器产生的代码,和如何优化。举了很多实际例子,还是很有价值的。

第一天的会议在六点多结束。晚上7点,讲师们在一楼参加讲师晚宴。上一张合影吧。

内圈从左到右依次为高博,Borislav Stanimirov,Viktor Kirilov,??,Kate Gregory,刘加权,陈明辉, Benjamine Saks,Mike Spertus,李建忠,Mike Wong,吴咏炜。后排站立的从左到右依次是陈福真,祁宇,兰征鹏,蒋豪良,雷鹏,张银奎。

因为周六晚上在上海有个重要活动,所以只好周六一早便赶高铁回上海了,错过了第二天的很多精彩内容。

(这个短文的大部分内容是在返沪的高铁上写的,不时有各种打扰,难以集中思绪,结构散乱,有点像流水账,有些内容也没有深入考证,勉强成稿,聊胜于无吧,感谢多位讲师提供照片和review本文)

***********************************************************

正心诚意,格物致知,以人文情怀审视软件,以软件技术改变人生。

欢迎关注格友公众号

图说2017年C++大会相关推荐

  1. 【资料合集】2017云栖大会•广东分会回顾合集:PDF下载

    科技盛宴再临广州,11月22日,云栖大会·广东分会于广州香格里拉酒店召开. 峰会现场,大咖齐聚,场面热烈.在本次云栖大会上,阿里政务云上实现"国家级"加密保护:游戏盾推出入门版,费 ...

  2. 【资料合集】2017云栖大会·广东分会回顾合集:PDF下载

    点击有惊喜 科技盛宴再临广州,11月22日,云栖大会·广东分会于广州香格里拉酒店召开. 峰会现场,大咖齐聚,场面热烈.在本次云栖大会上,阿里政务云上实现"国家级"加密保护:游戏盾推 ...

  3. 【资料合集】2017云栖大会·苏州峰会回顾合集:PDF下载

    技术揭秘大狂欢,12月7日,云栖大会·苏州峰会于苏州日航酒店三楼中宴会厅召开,带来前沿技术理念及实践技术成果分享.本次云栖大会的看点:企业软件供应链生产效能如何提升:如何实现高效研发实践:初创企业如何 ...

  4. 【资料合集】2017云栖大会•苏州峰会回顾合集:PDF下载

    技术揭秘大狂欢,12月7日,云栖大会·苏州峰会于苏州日航酒店三楼中宴会厅召开,带来前沿技术理念及实践技术成果分享.本次云栖大会的看点:企业软件供应链生产效能如何提升:如何实现高效研发实践:初创企业如何 ...

  5. CCAI 2017 中国人工智能大会 6.4 折抢票倒计时!

    7 月 22 - 23 日,由中国人工智能学会.阿里巴巴集团 & 蚂蚁金服主办,CSDN.中国科学院自动化研究所承办,云栖社区作为独家直播合作伙伴的第三届中国人工智能大会(CCAI 2017) ...

  6. 2017云栖大会·杭州峰会:《在线用户行为分析:基于流式计算的数据处理及应用》之《数据可视化:构建实时动态运营数据分析大屏》篇...

    实验背景介绍 了解更多2017云栖大会·杭州峰会 TechInsight & Workshop. 本手册为云栖大会Workshop之<在线用户行为分析:基于流式计算的数据处理及应用> ...

  7. 【全记录】2017云栖大会·北京峰会——企业云上业务优化专场

    作为本年度科技界的压轴大戏,2017云栖大会·北京峰会盛大空前, 30+主题论坛.深度技术解读.行业前沿实践分享以及创新互动体验让来到现场的朋友们印象深刻.本次峰会中,由阿里云客户服务部主办的 &qu ...

  8. 智能时代 软件赋能——2017中国软件技术大会

    由中国科学院软件研究所.中科软科技股份有限公司联合主办,北京中科凯亚科技有限公司协办的第15届中国软件技术大会将于2017年12月在北京· 国家会议中心隆重举行. 毋庸置疑,我们正在迈入智能时代,伴随 ...

  9. 2017百度世界大会 | 爱奇艺创始人CEO龚宇演讲速记

    2017百度世界大会如期而来.(好像不对,Robin 说往年都是夏季办)那就改成千呼万唤始出来. 以下是爱奇艺创始人CEO龚宇演讲实录,小编全文呈上,请各位查收: 各位来宾,大家好! 很高兴今天再次来 ...

最新文章

  1. 谷歌工程师:聊一聊深度学习的weight initialization
  2. poj 2029 二维树状数组
  3. 使用BIOS进行键盘输入和磁盘读写---汇编学习笔记
  4. Spark HistoryServer日志解析清理异常
  5. angular routerlink传递参数_[翻译]在 Angular 中使用 async-await 特性
  6. [LeetCode] Remove Duplicates from Sorted List - 链表问题
  7. promise封装ajax
  8. .NET代码编写规范 整理
  9. 计算机网络基础_4_传输层与应用层的作用
  10. VVC编码进展:码率降低,速度仍需提升
  11. java中的instanceof的用法
  12. 如何评估一个人解决问题的能力
  13. 编程之美--读书笔记--返回一个数组中所有元素被第一个元素除的结果
  14. 【STM32】STM32CubeMX教程--功能介绍
  15. 中国计算机信息系统集成行业协会有含金量吗,系统集成工程师证书的含金量怎么样...
  16. HCIE Security 常见WEB攻击 备考笔记(幕布)
  17. foo bar foobar?
  18. Windows基础 加固
  19. 脖子酸疼怎么办?初探解决方案
  20. linux 的常用命令---------第十三阶段(NFS与DHCP服务,scp用法)

热门文章

  1. 发烧大师448K原理简介
  2. python-----删除同一文件夹下相似的图片
  3. IIC(I2C)总线上的设备其地址如何定义?通俗易懂
  4. 从腾讯音乐Q2财报,透视音乐产业的数字化繁荣
  5. linux上安装部署vnc远程服务
  6. mag6000变送器怎么使用_哈尔滨信号隔离模块怎么选-泰华仪表
  7. 300页PPT带你学习人工智能应用基础
  8. 【C语言学习笔记】调用系统命令system
  9. 迈克尔杰克逊mtv_使用功能强大的杰克逊对象映射器轻松解析json
  10. 江工网:大专生报考公务员的要求