写在前面:

我是一名学生,在北邮读研,也是跨专业学的计算机,个人对服务器端编程感兴趣,平时主用c/c++,所以逮到这次机会就参加了这次大会。

先附几张合影:

正文:

这次参加c++大会也算是我最认真的一次,两天几乎每轮讲座都在认真听。参加这次大会的初衷是去找大牛合影,看看工业界c++一些发展和应用,基本上目的也达到了。不过以为能见到侯捷老师,带了一本他的书,还是蛮重的,弄到最后听人说提前走了,有点遗憾。不过和云风,李老师(李建忠),何登成老师,高博老师合影已经满足了我的愿望,原来我是一个追星族(逃。大会共两天,我满满地参加了两天,不过有多个会场,我就选了一些我比较关注的会场。第一天早半天是比雅尼的专场,据说这段时间老爷子走过好多中国地方做演讲,讲了c++之所以是c++的三个主要特色,包括对硬件的直接访问,对抽象的零开销,稳定性和可移植性。还讲了c++11/14一些新的特性,说了c++做了哪些事。让我眼界大开。祖师爷说他喜欢一种语言,是看这种语言能做什么。还有老爷子竟然说他最喜欢的一个c++特性竟然是递归的构造函数,果然是高手。老爷子也说了c++需要有包容的态度,也考虑将其他语言的优点融入其中,讲了一个例子就是module编程,即只需要包括用到的东西,用不到的就不加到程序中,类似于python和Java中的import功能。说之后可能会加入c++,这绝对是一个很大的提高。下午参加了Andrei的演讲,主要讲了一些可移植的优化技巧和一些编程指导,老师居然最后说中文,蛮有趣的,2333。Andrei还给了一些非常中肯的指导,一些直觉往往违背事实,告诉我们要通过实际测试去检验,比如说下面两个直觉都不正确1)fewer instructions=faster code2)data is faster than computation 当然反过来的假想图设也不一样,然后给了一个普世的标准,上机去测试实际的时间。当然老师他也举了例子来检验他提出的一些直觉判断违背实验结果的例子,非常棒。当时云风大哥也在听这个会议,坐我后面,我就问了云风一个问题,为啥a[i++]比a[++i]更好,当然这个问题等下Andrei也会讲到,当时云风大哥点了一句话我就知道原因了,之前也知道点,可能有点忘了,因为我知道在STL里迭代器的后加加是要调用前加加的,以为STL是模仿整数基本类型,那样的话肯定是前加加好,云风大哥说那不是一回事,整型这边的i++会更快,主要是更有利于流水线工作,可以同时执行两个操作(取值和加一),且是缓存友好型的,而++i必须要等加完一才能取值,说话期间声音非常温柔,最后云风大哥还添了一句,这是我的想法哈,不知道对不对。一点没架子,非常棒。后期他的讲座我也去参加了,本来想听严世光老师的讲座的,直接抵制不住云风大哥的诱惑,直接奔过去了,也和云风大哥合了影,签名。果然我是云风大哥的脑残粉。后期好几个讲座很巧合和云风大哥坐的很近,感觉特别有正能量。第二个我想说的是高博老师,开会前就聊过几句,毕竟我比较崇拜技术大牛,因为高博老师这次主要工作是作同传,比较忙,一直找不到机会聊,然后第二天会议中午结束后,我准备出去吃饭,碰到高博老师,第一句话就是咱合个影吧,老师愉快的答应,然后交流了一些我个人的问题,老师说你的问题不大,多读几本书就好了,我改天给你寄几本书送你看,我当时就拒绝了,我妈经常跟我说不要贪别人的东西,感觉高老师非常好,还给我建议用什么编译器,编辑器等,说完就说一起吃饭吧,哈哈,我说我买的特惠票,要出去买了吃,然后就先分开了。后来因为聊的比较长,加上上午的演讲拖时间了,我其实中午没吃饭,饿死我了,演讲延时这是大牛演讲的通病,不过陈硕老师做的不错啊,比如说陈硕老师有10分钟的演讲,那即使他有30张ppt,那他会直接选几张有数据的ppt讲,控制好时间。第二天参加了Mike Spertus的内存管理讲座,口音不重,语速考虑到了我们,非常赞,基本能听懂一些,讲内存管理也基本遵循一般的讲法,将new/delete拉出来,然后进行大批判,最后拿出新的解决方案就是两个智能指针,用于管理内存资源避免泄漏,当然这些知识在boost中早就有了,好像std::tr1也早就有了,c++11也加入了这些特性,这些特性的确比之前单纯写new/delete好,指不定写new/delete时会发生异常导致delete无法执行到,那内存就泄漏了。后面还讲了多线程在c++11中引进并讨论了多线程和内存之间会发生的一些问题,无非就是内存数据共享,有人说加锁呗,很遗憾,一个加锁操作很可能就抵消了多核机器的优势,不过实在需要用锁那也只能用了,但要遵循尽量减少锁的范围减少数据依赖,后面讲了内存模型方面的最佳实践即cache line和false sharing,这里我已经不是很懂了,反正就是在cache line这边好像用到对齐,这样可以加速,还讲了原子计数,这边已经有点懵了,后面听了何登成老师的高性能c/c++高性能优化:从理论到实践,这边感觉有一个重合之处,准确一点是将理论运用到实践中,前面Mike说过一个技巧就是关于并行时锁的问题,一个锁可能就抵消了多线程的优势,所以开发过程中要少用锁,必须用的时候需要减少范围,这里边提出了一些新的替代方案,其中包括当锁住的资源之间不需要同步的话,可以每次用一个队列将锁住的资源全部替换出来,其实陈硕老师的木铎库里边的就有实践这个功能。还有就是现在有用copy-on-write技术来替代读写锁,这里边何老师讲了G5 Discovery,这其实Mike的lecture中也讲到了,不过何老师将这个技术运用到了他们公司数据库AliSQL中并提高很大的性能,还讲了一些关于AliSQL的优化,讲的不错。后面也听了吴咏炜老师的函数式编程,人很多,我就占了几十分钟,不过值得了,回头还要消化消化。后面我听了祈宇老师的RPC讲座,听起来很不错,不过由于时间问题就讲了一些他们的RPC的优势和一些细节,在后面有专门的论坛讲座,当时我就提出了一个问题,当RPC调用超时,调用无法区分1)是网络故障还是对方机器崩溃2)软件还是硬件错误3)其他 根据祈宇老师回答,他的RPC会有对应的错误码,所以我大概猜测啊,RPC调用发生超时倒不必非要区分究竟是什么错误,很精确,而是大体是什么错误,最后我参加的一个论坛是编程修炼,然后我提出一个问题:该不该花时间去看源代码,在场的四位嘉宾包括王博老师,刘光聪老师,吴咏炜老师,李建忠老师都建议要看,还给了其他一些中肯的建议,另外有一位参会大叔也答复了好多问题,满满的正能量。当时李建忠老师也说了一件事,2005年第一次c++大会时,陈硕来参加大会,就在第二次大会作了翻译工作,据说云风大哥对陈硕老师的评价很高。可我却在网上看到陈硕老师当年自己说六级还没过,关键是他还跟侯捷老师一起翻译了一本书,怎么感觉有点说不通啊?求陈硕老师出来解释下,哈哈。不是我黑陈硕老师,我也是他的粉。总体而言,参加这次会议,开了眼界,也认识了一些大牛,给自己好多养分,值得,下次应该还会参加!后来在回北京的路上看到群里边一位大叔级别的c++程序员和吴咏炜老师还有其他人在讨论一些他们那个时代的故事,真是每一代程序员都有那一代的回忆,总之我是满满的感动,这次大会也把我喂的饱饱的,能消化多少就要看自己的造化了,最后还是要谢谢这次大会的举办方,博览公司。非常棒的一次体验。

以上均是我个人的一面之词,若言语之间充满错误,恳请指出。

朱月俊 2016/10/31 于中国北京

jayzhu1215@gmail.com

新浪微博jayzhu1215

C++大会感悟的更多相关文章

  1. 2016第三届C++大会参会感悟(上)

    继05年第一届C++大会,09年第二届,2016年10月28日-29日,在上海举行第三届C++大会.讲师主要有C++之父 / Bjarne Stroustrup,前Facebook研究科学家 / An ...

  2. GOPS 2018全球运维大会上海站 参会感悟梳理

    今天遇到很多优秀的讲师.业界的大伽,很开心 现在把get到的信息梳理一下:(1)想解决性能问题,一定要在缓存上下功夫:[nginx上有好多文章可以做,真是博大精深呢<深入理解Nginx:模块开发 ...

  3. QCon2013上海站总结 -- 整体印象和感悟

    基本情况: QCon 2013(http://www.qconshanghai.com/)上海站的活动一共为期3天(周五.六和日).活动在上海的光大会展中心举行的. QCon(全球软件开发者大会)是由 ...

  4. 云栖大会day1 上午

    参与云栖大会第一天感受 早晨参与内容 数据智能实践专场 议程是 09:00-09:25 互联网下半场用户增长之路 吕志国 [友盟+]CPO 09:25-09:50 数据开启智慧零售的升级引擎 刘延明 ...

  5. GIAC 2017全球互联网架构大会最新日程

    12月22日至23日,高可用架构和msup联合主办的GIAC 全球互联网架构大会将于上海光大会展中心举行.GIAC 全球互联网架构大会是高可用架构技术社区推广的面向架构师.技术负责人及高端技术从业人员 ...

  6. ChinaTest测试感悟

    这次去北京参加ChinaTest大会,听了各位大师和同行的心得和感悟,收获颇多.很喜欢这样的大会,可以听到测试的各种声音各种观点.当没有对错时,需要思考的就是怎样采取最适合当前环境的策略.言归正传,谈 ...

  7. Java游戏服务器成长之路——感悟篇

    又是一个美好的周末啊,现在一到周末,早上就起得晚,下午困了又会睡一两个小时,上班的时候,早上起来喝一杯咖啡,然后就能高效的工作一整天,然而到了周末人就懒散了,哈哈. 最近刚跳槽,到新公司已经干了有两周 ...

  8. Connect() 2016 大会的主题 ---微软大法好

    文章首发于微信公众号"dotnet跨平台",欢迎关注,可以扫页面左面的二维码. 今年 Connect 大会的主题是 Big possibilities. Bold technolo ...

  9. “.Net 社区虚拟大会”(dotnetConf) 2016 Day 3 Keynote: Scott Hanselman

    美国时间 6月7日--9日,为期三天的微软.NET社区虚拟大会正式在 Channel9 上召开,美国时间6.9 是第三天, Scott Hanselman 做Keynote.今天主题围绕的是.NET ...

随机推荐

  1. CentOS7 Tomcat 环境部署

    java由jvm虚拟机和一些本地类库(与操作系统通信的底层库)和java类库组成.javase由jdk和一些基本api组成,而javaee则在javase基础上添加了一些企业常用的类库,其中两个著名a ...

  2. 使用Spring整合Quartz轻松完成定时任务

    一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...

  3. October 25th Week 44th Tuesday 2016

    The best preparation for tomorrow is doing your best today. 过好今天,就是对明天最好的准备. Tomorrow is always base ...

  4. Android studio 自定义打包apk名

    Android Studio打包应用默认生成的apk名称是:app-release.apk .如果我们要让生成的apk名跟我们版本包名有联系的话,那我们就要自定义生成的apk名了 需要在build.g ...

  5. 使用Selector改变TextView的字体颜色textColor的方法

    先上Selector文件,名字为singer_fragment_top_text_style.xml, <?xml version="1.0" encoding=" ...

  6. JQuery数组详解(含实例)

    <!doctype html>jQuery数组处理详解(含实例演示)@Mr.Think 演示所用数组 var _mozi=['墨家','墨子','墨翟','兼爱非攻','尚同尚贤']; 1 ...

  7. Web GIS离线解决方案

    1.背景 在离线环境下(局域网中)的GIS系统中如何使用地图?这里的地图主要指的是地图底图,有了底图切片数据,我们就可以看到地图,在上面加上自己的业务数据图层,进行相关操作. 要在离线环境下看到GIS ...

  8. python 学习第三天

    一,Python的数据结构-集合 1,集合的定义 Python中集合是以{}括起来的,例如x=set({1,2,3,4,5}),这就是一个集合,集合的特点有:(1),去重的(2),无序的,集合的作用用 ...

  9. linux中安装mysql数据库

    遇到ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' ...

  10. Git在window的使用(TortoiseGit)之一

    一.什么是Git? Git是分布式版本控制系统.它与SVN的主要区别:SVN在本地没有版本,不能脱机工作:Git是分布式控制系统,在自己的本地都有一个版本,可以脱机工作. 二.在window上安装Gi ...