摘要:Name Mangling,直接翻译过来为名字改写 。它是深入理解 C++ 编译链接模型的必由之路。 笔者近期进行数据库开发工作时,涉及到MySQL客户端的编译链接的问题,通过重新厘清了之前理解一知半解的Name Manging,解决了让人抓狂的编译链接问题。 接下来,和大家聊聊C++的Name M 阅读全文
posted @ 2020-09-27 18:31 HappenLee 阅读(132) 评论(2) 推荐(0) 编辑
摘要:上篇笔记讲到了聚合函数的实现并且带大家看了聚合函数是如何注册到ClickHouse之中的并被调用使用的。这篇笔记,笔者会续上上篇的内容,将剖析一把ClickHouse聚合流程的整体实现。 第二篇文章,我们来一起看看聚合流程的实现~~ 上车! 1.基础知识的梳理 ClickHouse的实现接口 Blo 阅读全文
posted @ 2020-07-17 11:43 HappenLee 阅读(443) 评论(0) 推荐(0) 编辑
摘要:CRTP,奇特的递归模板模式 (Curiously Recurring Template Pattern) 是 C++ 的一种看起来很怪异的模板编程技巧。 它通过继承和模板的联合应用,实现了一种"看似"继承自己的语法。这种编程的技法,无论是在STL还是Boost之中都被大量使用。像它的名字一样,看起 阅读全文
posted @ 2020-07-10 12:35 HappenLee 阅读(117) 评论(0) 推荐(0) 编辑
摘要:由于工作的需求,后续笔者工作需要和开源的OLAP数据库ClickHouse打交道。ClickHouse是Yandex在2016年6月15日开源了一个分析型数据库,以强悍的单机处理能力被称道。 笔者在实际测试ClickHouse和阅读ClickHouse的源码过程之中,对"战斗民族"开发的数据库十分欣 阅读全文
posted @ 2020-06-02 10:05 HappenLee 阅读(641) 评论(0) 推荐(0) 编辑
摘要:最近将手头上负责的项目代码从GCC 4.8.2升级到了GCC 8.2。(终于可以使用C++17了,想想后续的开发也是很美好啊~~)不过这个过程之中也遇到了一些 稀奇古怪 的问题,在这里做一个简单的记录,希望后续有同学遇到类似的问题能作为参考。 1. error: unable to find str 阅读全文
posted @ 2020-02-14 12:31 HappenLee 阅读(291) 评论(0) 推荐(0) 编辑
摘要:笔者入职百度时,二面面试官的让我聊聊C++之中的 volatile关键词 。volatile在Java和C++之中的差别可谓是 天差地别 ,我只是简单聊了聊Java之中的 volatile ,面试官对我的回答并不满意。后续学习 "《C++ Prmier》" 时,对 volatile 的理解也是云里雾 阅读全文
posted @ 2019-03-19 20:43 HappenLee 阅读(362) 评论(0) 推荐(0) 编辑
摘要:又开了一个新的坑,笔者工作之后维护着一个 NoSQL 数据库 。而笔者维护的数据库正是基于 社区版本的 Aerospike 打造而来。所以这个踩坑系列的文章属于工作总结型的内容,会将使用开发 Aerospike 的各种问题进行总结梳理,希望能够给予大家启发和帮助。第一篇开山之文,就先从Aerospi 阅读全文
posted @ 2019-01-20 10:08 HappenLee 阅读(670) 评论(0) 推荐(1) 编辑
摘要:笔者最近在阅读 "Aerospike" 论文时,发现了Aerospike是利用了Linux 共享内存机制来实现的存储索引快速重建的。这种方式比传统利用索引文件进行快速重启的方式大大提高了效率。( 减少了磁盘 i/o,但是缺点是耗费内存,并且服务器一旦重启之后就只能冷重启了~~ )而目前笔者工作之中维 阅读全文
posted @ 2019-01-02 18:18 HappenLee 阅读(800) 评论(0) 推荐(0) 编辑
摘要:写 C++的同学想必有太多和内存打交道的血泪经验了,常常被 C++的内存问题搅的焦头烂额。( 写 core 的经验了 )有很多同学一见到 core 就两眼一抹黑,不知所措了。笔者 入" 坑 "C++之后,在调试 C++代码的过程之中,学习了不少调试代码内存的工具。希望借这个机会来介绍一下笔者常用的工 阅读全文
posted @ 2018-11-08 19:37 HappenLee 阅读(1049) 评论(2) 推荐(1) 编辑
摘要:正式工作之后,公司对于单元测试要求比较严格。(笔者之前比较懒,一般很少写完整的单测~~)。作为一个合格的开发工程师,需要为所编写代码编写适量的 单元测试 是十分必要的,在实际进行的开发工作之中,TDD( Test drivern development ) 是一种经过实践可行的开发方式。 编写单元测 阅读全文
posted @ 2018-11-01 14:01 HappenLee 阅读(836) 评论(1) 推荐(1) 编辑