-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.xml
23 lines (23 loc) · 43.7 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>后端技术小屋</title><link>https://backendhouse.github.io/</link><description>Recent content on 后端技术小屋</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Mon, 12 Sep 2022 18:30:08 +0800</lastBuildDate><atom:link href="https://backendhouse.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>golang开发常用命令</title><link>https://backendhouse.github.io/post/golang%E5%BC%80%E5%8F%91%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</link><pubDate>Mon, 12 Sep 2022 18:30:08 +0800</pubDate><guid>https://backendhouse.github.io/post/golang%E5%BC%80%E5%8F%91%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</guid><description>golang开发常用命令 本文介绍golang开发过程中的常用命令。 包管理 go mod init # 初始化包管理配置,这一步会在module根目录下生成go.m</description></item><item><title>也来谈谈golang泛型</title><link>https://backendhouse.github.io/post/%E4%B9%9F%E6%9D%A5%E8%B0%88%E8%B0%88golang%E6%B3%9B%E5%9E%8B/</link><pubDate>Mon, 12 Sep 2022 17:32:08 +0800</pubDate><guid>https://backendhouse.github.io/post/%E4%B9%9F%E6%9D%A5%E8%B0%88%E8%B0%88golang%E6%B3%9B%E5%9E%8B/</guid><description>也来谈谈golang泛型 我们都知道golang在1.18版本之后引入了泛型,这对广大因不支持泛型饱受重复代码之苦的gophers喜大普奔。笔</description></item><item><title>CPU向量化诊断技巧</title><link>https://backendhouse.github.io/post/cpu%E5%90%91%E9%87%8F%E5%8C%96%E8%AF%8A%E6%96%AD%E6%8A%80%E5%B7%A7/</link><pubDate>Sat, 10 Sep 2022 10:51:24 +0800</pubDate><guid>https://backendhouse.github.io/post/cpu%E5%90%91%E9%87%8F%E5%8C%96%E8%AF%8A%E6%96%AD%E6%8A%80%E5%B7%A7/</guid><description>CPU向量化诊断技巧 众所周知,CPU向量化是ClickHouse在查询性能上如此出色的重要原因之一。在编译过程中,编译器会尽量将循环代码自动</description></item><item><title>ClickHouse 22.6-22.7 新特性盘点</title><link>https://backendhouse.github.io/post/%E8%AF%91clickhouse-22.6%E5%92%8C22.7%E6%96%B0%E7%89%B9%E6%80%A7%E7%9B%98%E7%82%B9/</link><pubDate>Sat, 20 Aug 2022 10:51:24 +0800</pubDate><guid>https://backendhouse.github.io/post/%E8%AF%91clickhouse-22.6%E5%92%8C22.7%E6%96%B0%E7%89%B9%E6%80%A7%E7%9B%98%E7%82%B9/</guid><description>ClickHouse 22.6-22.7 新特性盘点 本文摘译自: https://clickhouse.com/blog/newsletter_2022_august https://clickhouse.com/blog/newsletter_2022_july ClickHouse v22.6 6 月版本中包含以下特性: ARM 优先支持我们不断改进在 ARM 平台上用户的体验。今年我们引入了官方的 Docker 镜像,现在我们进</description></item><item><title>clickhosue v22.4和v22.5核心特性一栏</title><link>https://backendhouse.github.io/post/clickhouse-v22.4%E5%92%8Cv22.5%E6%A0%B8%E5%BF%83%E7%89%B9%E6%80%A7%E4%B8%80%E8%A7%88/</link><pubDate>Mon, 27 Jun 2022 10:51:24 +0800</pubDate><guid>https://backendhouse.github.io/post/clickhouse-v22.4%E5%92%8Cv22.5%E6%A0%B8%E5%BF%83%E7%89%B9%E6%80%A7%E4%B8%80%E8%A7%88/</guid><description>原文 https://clickhouse.com/blog/clickhouse-newsletter-june-2022-materialized-but-still-real-time/ https://clickhouse.com/blog/clickhouse-newsletter-may-2022-explain-statement-query-optimization/ v22.4 事务 事务作为实验特性已经可用。BEGIN TRANSACTION, COMMIT, ROLLBACK语句支持原子地插入多张表或物化视图,以及从某个快照进行满足一致性和隔离</description></item><item><title>clickhouse与火焰图</title><link>https://backendhouse.github.io/post/clickhouse%E4%B8%8E%E7%81%AB%E7%84%B0%E5%9B%BE/</link><pubDate>Fri, 10 Jun 2022 09:30:12 +0800</pubDate><guid>https://backendhouse.github.io/post/clickhouse%E4%B8%8E%E7%81%AB%E7%84%B0%E5%9B%BE/</guid><description>最近再对clickhouse hive engine进行一些调优工作。本文将总结调优过程中常用的一些工具和命令。 火焰图 火焰图 (Flame Graph) 是性能优化大师 Bredan Gregg 创建</description></item><item><title>clickhouse新特性之————MergeTree启动加速(使用篇)</title><link>https://backendhouse.github.io/post/clickhouse%E6%96%B0%E7%89%B9%E6%80%A7%E4%B9%8B-mergetree%E5%90%AF%E5%8A%A8%E5%8A%A0%E9%80%9F%E4%BD%BF%E7%94%A8%E7%AF%87/</link><pubDate>Tue, 17 May 2022 09:30:12 +0800</pubDate><guid>https://backendhouse.github.io/post/clickhouse%E6%96%B0%E7%89%B9%E6%80%A7%E4%B9%8B-mergetree%E5%90%AF%E5%8A%A8%E5%8A%A0%E9%80%9F%E4%BD%BF%E7%94%A8%E7%AF%87/</guid><description>[TOC] 前言 MergeTree Family启动慢问题一直是ClickHouse社区的痛点。在完成对所有MergeTree part的加载之前,clickhouse-</description></item><item><title>clickhouse新特性之————clickhouse-keeper</title><link>https://backendhouse.github.io/post/clickhouse%E6%96%B0%E7%89%B9%E6%80%A7%E4%B9%8B-clickhouse-keeper/</link><pubDate>Mon, 16 May 2022 09:30:12 +0800</pubDate><guid>https://backendhouse.github.io/post/clickhouse%E6%96%B0%E7%89%B9%E6%80%A7%E4%B9%8B-clickhouse-keeper/</guid><description>[TOC] 一、介绍 clickhouse社区在21.8版本中引入了clickhouse-keeper, 用于替代zookeeper. clickhouse</description></item><item><title>About</title><link>https://backendhouse.github.io/about/</link><pubDate>Tue, 10 May 2022 19:28:04 +0800</pubDate><guid>https://backendhouse.github.io/about/</guid><description>Introduce Myself Contact Email: 654010905@qq.com Twitter: @li_taiyang 个人 男/90后/哈工大本硕/CS专业/ClickHouse Contributor 英语水平: CET-6 技术博客: 后端技术小屋 微信公众号 啊哈大数据 后端技术小屋</description></item><item><title>【译】ClickHouse 22.3 LTS 发布</title><link>https://backendhouse.github.io/post/clickhouse-22.3-lts-%E5%8F%91%E5%B8%83/</link><pubDate>Thu, 28 Apr 2022 14:23:08 +0800</pubDate><guid>https://backendhouse.github.io/post/clickhouse-22.3-lts-%E5%8F%91%E5%B8%83/</guid><description>【译】ClickHouse 22.3 LTS 发布 作者:Alexey Milovidov 原文链接:https://clickhouse.com/blog/clickhouse</description></item><item><title>【译】ClickHouse 22.2新特性盘点</title><link>https://backendhouse.github.io/post/%E8%AF%91clickhouse-22.2%E6%96%B0%E7%89%B9%E6%80%A7%E7%9B%98%E7%82%B9/</link><pubDate>Wed, 09 Mar 2022 18:30:08 +0800</pubDate><guid>https://backendhouse.github.io/post/%E8%AF%91clickhouse-22.2%E6%96%B0%E7%89%B9%E6%80%A7%E7%9B%98%E7%82%B9/</guid><description>作者:Alexey Milovidov 原文链接:https://clickhouse.com/blog/clickhouse-22-2-released/ 我们</description></item><item><title>ClickHouse 22.1版本新特性盘点</title><link>https://backendhouse.github.io/post/%E8%AF%91clickhouse-22.1%E6%96%B0%E7%89%B9%E6%80%A7%E7%9B%98%E7%82%B9/</link><pubDate>Mon, 31 Jan 2022 14:23:08 +0800</pubDate><guid>https://backendhouse.github.io/post/%E8%AF%91clickhouse-22.1%E6%96%B0%E7%89%B9%E6%80%A7%E7%9B%98%E7%82%B9/</guid><description>ClickHouse 22.1版本新特性盘点 作者:Alexey Milovidov 原文链接:https://clickhouse.com/blog/en/2022/clickho</description></item><item><title>2021总结和新一年的展望</title><link>https://backendhouse.github.io/post/2021%E6%80%BB%E7%BB%93%E5%92%8C%E6%96%B0%E4%B8%80%E5%B9%B4%E7%9A%84%E5%B1%95%E6%9C%9B/</link><pubDate>Thu, 20 Jan 2022 15:16:21 +0800</pubDate><guid>https://backendhouse.github.io/post/2021%E6%80%BB%E7%BB%93%E5%92%8C%E6%96%B0%E4%B8%80%E5%B9%B4%E7%9A%84%E5%B1%95%E6%9C%9B/</guid><description>时间过得很快,元旦仿佛还在昨天,而现在已经是1月下旬了。伟人说过一万年太久,只争朝夕,深以为然。然而除了埋头赶路之外,还得时常停下脚步审视自</description></item><item><title>现代cmake--阅读笔记</title><link>https://backendhouse.github.io/post/%E7%8E%B0%E4%BB%A3cmake-%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/</link><pubDate>Sat, 18 Dec 2021 15:16:21 +0800</pubDate><guid>https://backendhouse.github.io/post/%E7%8E%B0%E4%BB%A3cmake-%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/</guid><description>1. Running cmake 1.1. cmake选项 &ndash;build 指定输出目录 -j 指定并行度 &ndash;target 指定编译目标 1.2. 选择编译器 EXPORT CC=clang CXX=clang++ cmake .. 1.3. 选择生成器 默认为make 通过cmake -G Ninja指定</description></item><item><title>聊聊ClickHouse的开发、编译和测试</title><link>https://backendhouse.github.io/post/%E8%81%8A%E8%81%8Aclickhouse%E7%9A%84%E5%BC%80%E5%8F%91%E7%BC%96%E8%AF%91%E5%92%8C%E6%B5%8B%E8%AF%95/</link><pubDate>Sat, 18 Dec 2021 15:16:21 +0800</pubDate><guid>https://backendhouse.github.io/post/%E8%81%8A%E8%81%8Aclickhouse%E7%9A%84%E5%BC%80%E5%8F%91%E7%BC%96%E8%AF%91%E5%92%8C%E6%B5%8B%E8%AF%95/</guid><description>ClickHouse为了一款性能极佳的开源OLAP数据库,在最近几年也是越来越火,除了在各大互联网公司落地生根之外,也吸引了一大批热心的贡献</description></item><item><title>clickhouse如何解决GLIBC不兼容问题--终篇</title><link>https://backendhouse.github.io/post/clickhouse%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3glibc%E4%B8%8D%E5%85%BC%E5%AE%B9%E9%97%AE%E9%A2%98-%E7%BB%88%E7%AF%87/</link><pubDate>Fri, 03 Dec 2021 15:16:21 +0800</pubDate><guid>https://backendhouse.github.io/post/clickhouse%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3glibc%E4%B8%8D%E5%85%BC%E5%AE%B9%E9%97%AE%E9%A2%98-%E7%BB%88%E7%AF%87/</guid><description>在上一篇文章中我们介绍了如何将共享库与binary文件打包来解决clickhouse运行时GLIBC不兼容的问题。但是经过我们的实践发现这种</description></item><item><title>vscode c++远程调试实战</title><link>https://backendhouse.github.io/post/vscode-c++%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95%E5%AE%9E%E6%88%98/</link><pubDate>Thu, 02 Dec 2021 15:16:21 +0800</pubDate><guid>https://backendhouse.github.io/post/vscode-c++%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95%E5%AE%9E%E6%88%98/</guid><description>在上两篇文章1,文章2中,我们介绍了c++开发的最佳实践,以及一些常见问题的解决方案。虽然笔者一直用vscode + remote-ssh + clangd阅读代码,</description></item><item><title>vscode clangd c++开发常见问题和解决方案</title><link>https://backendhouse.github.io/post/vscode-clangd%E6%89%BE%E4%B8%8D%E5%88%B0%E5%A4%B4%E6%96%87%E4%BB%B6%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/</link><pubDate>Wed, 01 Dec 2021 15:16:21 +0800</pubDate><guid>https://backendhouse.github.io/post/vscode-clangd%E6%89%BE%E4%B8%8D%E5%88%B0%E5%A4%B4%E6%96%87%E4%BB%B6%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/</guid><description>在上一篇文章中,我们推荐了vscode + remote-ssh + clangd这种C++开发方式。在本文中,我们将总结使用这种方式的过程中遇到的常见问题及其解决方</description></item><item><title>snappy流式编解码总结</title><link>https://backendhouse.github.io/post/snappy%E6%B5%81%E5%BC%8F%E7%BC%96%E8%A7%A3%E7%A0%81%E6%80%BB%E7%BB%93/</link><pubDate>Sun, 31 Oct 2021 15:16:21 +0800</pubDate><guid>https://backendhouse.github.io/post/snappy%E6%B5%81%E5%BC%8F%E7%BC%96%E8%A7%A3%E7%A0%81%E6%80%BB%E7%BB%93/</guid><description>介绍 snappy是谷歌开源的用于数据快速压缩和解压的程序库,它的目标并非实现最大压缩率,而是同时实现非常高的压缩速度和合理的压缩率。snap</description></item><item><title>golang日常开发系列之三--常用命令</title><link>https://backendhouse.github.io/post/golang%E6%97%A5%E5%B8%B8%E5%BC%80%E5%8F%91%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%89-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</link><pubDate>Tue, 21 Sep 2021 09:24:08 +0800</pubDate><guid>https://backendhouse.github.io/post/golang%E6%97%A5%E5%B8%B8%E5%BC%80%E5%8F%91%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%89-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</guid><description>golang日常开发系列之三&ndash;常用命令 go语言作为一门相对较新的语言,相比c++有着更丰富的工具链。语言本身支持测试、模块管理、</description></item><item><title>一个怪异的C++函数定义方式</title><link>https://backendhouse.github.io/post/%E4%B8%80%E4%B8%AA%E6%80%AA%E5%BC%82%E7%9A%84c++%E5%87%BD%E6%95%B0%E5%AE%9A%E4%B9%89%E6%96%B9%E5%BC%8F/</link><pubDate>Tue, 21 Sep 2021 09:23:08 +0800</pubDate><guid>https://backendhouse.github.io/post/%E4%B8%80%E4%B8%AA%E6%80%AA%E5%BC%82%E7%9A%84c++%E5%87%BD%E6%95%B0%E5%AE%9A%E4%B9%89%E6%96%B9%E5%BC%8F/</guid><description>在阅读clickhouse代码的过程中,发现有一种函数定义形式很怪异,一度以为是代码写错了。。。 int main() try { XXX } catch (DB::Exception &amp; e) { XXX } 形式如上,函数名之</description></item><item><title>【译】Clickhouse与LDAP集成(二)</title><link>https://backendhouse.github.io/post/%E8%AF%91clickhouse%E4%B8%8Eldap%E9%9B%86%E6%88%90%E4%BA%8C/</link><pubDate>Mon, 20 Sep 2021 14:23:08 +0800</pubDate><guid>https://backendhouse.github.io/post/%E8%AF%91clickhouse%E4%B8%8Eldap%E9%9B%86%E6%88%90%E4%BA%8C/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 原文:https://altinity.com/blog/integrating-clickho</description></item><item><title>C++开发环境最佳实践</title><link>https://backendhouse.github.io/post/c++%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/</link><pubDate>Sun, 01 Aug 2021 16:54:13 +0800</pubDate><guid>https://backendhouse.github.io/post/c++%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 没有什么比开发环境这个话题更能引起cpp程序员的共鸣。本人从刚毕业时候的vim + ctags,到后</description></item><item><title>golang日常开发系列之三--mysql driver常见问题和源码解析</title><link>https://backendhouse.github.io/post/golang%E6%97%A5%E5%B8%B8%E5%BC%80%E5%8F%91%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%89-mysql-driver%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%92%8C%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/</link><pubDate>Mon, 19 Jul 2021 16:54:13 +0800</pubDate><guid>https://backendhouse.github.io/post/golang%E6%97%A5%E5%B8%B8%E5%BC%80%E5%8F%91%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%89-mysql-driver%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%92%8C%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 在用golang进行后端开发时,总免不了要和mysql打交道。我们一般使用库github.com</description></item><item><title>golang日常开发系列之二--巧用defer</title><link>https://backendhouse.github.io/post/golang%E6%97%A5%E5%B8%B8%E5%BC%80%E5%8F%91%E7%B3%BB%E5%88%97%E4%B9%8B%E4%BA%8C-%E5%B7%A7%E7%94%A8defer/</link><pubDate>Sun, 18 Jul 2021 16:54:13 +0800</pubDate><guid>https://backendhouse.github.io/post/golang%E6%97%A5%E5%B8%B8%E5%BC%80%E5%8F%91%E7%B3%BB%E5%88%97%E4%B9%8B%E4%BA%8C-%E5%B7%A7%E7%94%A8defer/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 我们都知道,在golang中,有一种语言特性跟C++中的RAII特别相似,那就是defer。例如</description></item><item><title>golang日常开发系列之一--defer的那些坑</title><link>https://backendhouse.github.io/post/golang%E6%97%A5%E5%B8%B8%E5%BC%80%E5%8F%91%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%80-defer%E7%9A%84%E9%82%A3%E4%BA%9B%E5%9D%91/</link><pubDate>Sat, 10 Jul 2021 16:54:13 +0800</pubDate><guid>https://backendhouse.github.io/post/golang%E6%97%A5%E5%B8%B8%E5%BC%80%E5%8F%91%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%80-defer%E7%9A%84%E9%82%A3%E4%BA%9B%E5%9D%91/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 最近集中开发了一波golang, 因此打算开启一个坑,就叫golang日常开发系列,用于总结这段时</description></item><item><title>如何将linux前台任务转后台运行</title><link>https://backendhouse.github.io/post/%E5%A6%82%E4%BD%95%E5%B0%86linux%E5%89%8D%E5%8F%B0%E4%BB%BB%E5%8A%A1%E8%BD%AC%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C/</link><pubDate>Wed, 16 Jun 2021 10:09:21 +0800</pubDate><guid>https://backendhouse.github.io/post/%E5%A6%82%E4%BD%95%E5%B0%86linux%E5%89%8D%E5%8F%B0%E4%BB%BB%E5%8A%A1%E8%BD%AC%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 学过linux的童鞋们都知道,在命令行中启动某个任务有两种方式,一种是前台,一种是后台。 一般来说</description></item><item><title>C++二进制文件中注入git信息</title><link>https://backendhouse.github.io/post/c++%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E4%B8%AD%E6%B3%A8%E5%85%A5git%E4%BF%A1%E6%81%AF/</link><pubDate>Sat, 15 May 2021 16:54:13 +0800</pubDate><guid>https://backendhouse.github.io/post/c++%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E4%B8%AD%E6%B3%A8%E5%85%A5git%E4%BF%A1%E6%81%AF/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 在生产环境中,为了方便定位问题,我们需要根据一个binary文件获取其对应的git信息,包括编译</description></item><item><title>Boltdb学习笔记之三--事务与并发控制</title><link>https://backendhouse.github.io/post/boltdb%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8B%E4%B8%89-%E4%BA%8B%E5%8A%A1%E4%B8%8E%E5%B9%B6%E5%8F%91%E6%8E%A7%E5%88%B6/</link><pubDate>Thu, 15 Apr 2021 09:24:05 +0800</pubDate><guid>https://backendhouse.github.io/post/boltdb%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8B%E4%B8%89-%E4%BA%8B%E5%8A%A1%E4%B8%8E%E5%B9%B6%E5%8F%91%E6%8E%A7%E5%88%B6/</guid><description>如果说数据库是软件工程领域的皇冠,而事务与并发控制可称之为皇冠上的钻石。本节将详细分析boltdb中如何实现事务与并发控制 事务 事务定义 bol</description></item><item><title>记一次网络问题排查过程</title><link>https://backendhouse.github.io/topost/%E8%AE%B0%E4%B8%80%E6%AC%A1%E7%BD%91%E7%BB%9C%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5%E8%BF%87%E7%A8%8B/</link><pubDate>Mon, 29 Mar 2021 09:24:05 +0800</pubDate><guid>https://backendhouse.github.io/topost/%E8%AE%B0%E4%B8%80%E6%AC%A1%E7%BD%91%E7%BB%9C%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5%E8%BF%87%E7%A8%8B/</guid><description>问题 最近一段时间发现,线上clickhouse_sinker写入clickhouse总是莫名其妙发生失败 clickhouse_sinker端</description></item><item><title>C++关键字之fallthrough</title><link>https://backendhouse.github.io/post/c++%E5%85%B3%E9%94%AE%E5%AD%97%E4%B9%8Bfallthrough/</link><pubDate>Mon, 22 Mar 2021 10:18:48 +0800</pubDate><guid>https://backendhouse.github.io/post/c++%E5%85%B3%E9%94%AE%E5%AD%97%E4%B9%8Bfallthrough/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 在C++17中引入了fallthrough属性。该属性主要用于switch语句中。在C++的sw</description></item><item><title>Boltdb学习笔记之一--存储管理</title><link>https://backendhouse.github.io/post/boltdb%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8B%E4%B8%80-%E5%AD%98%E5%82%A8%E7%AE%A1%E7%90%86/</link><pubDate>Sat, 20 Mar 2021 09:24:05 +0800</pubDate><guid>https://backendhouse.github.io/post/boltdb%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8B%E4%B8%80-%E5%AD%98%E5%82%A8%E7%AE%A1%E7%90%86/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 磁盘和内存的管理 磁盘是持久化存储,内存是非持久化存储。当数据库执行查询时,会以page为单位的读</description></item><item><title>Boltdb学习笔记之二--数据结构</title><link>https://backendhouse.github.io/post/boltdb%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8B%E4%BA%8C-%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/</link><pubDate>Sat, 20 Mar 2021 09:24:05 +0800</pubDate><guid>https://backendhouse.github.io/post/boltdb%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8B%E4%BA%8C-%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/</guid><description>在boltdb中,最核心的数据结构当属B+树了。B+树是数据库或文件系统中常见的数据结构,它的特点是能够保证数据稳定有序,因为每个叶子节点的</description></item><item><title>clickhouse集群zookeeper平滑搬迁实践</title><link>https://backendhouse.github.io/post/clickhouse%E9%9B%86%E7%BE%A4zookeeper%E5%B9%B3%E6%BB%91%E6%90%AC%E8%BF%81%E5%AE%9E%E8%B7%B5/</link><pubDate>Wed, 17 Mar 2021 16:18:25 +0800</pubDate><guid>https://backendhouse.github.io/post/clickhouse%E9%9B%86%E7%BE%A4zookeeper%E5%B9%B3%E6%BB%91%E6%90%AC%E8%BF%81%E5%AE%9E%E8%B7%B5/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 〇、背景 注:为简化表述,本文中将clickhouse简称为ck, 将zookeeper简称为zk。</description></item><item><title>zookeeper动态配置应用</title><link>https://backendhouse.github.io/post/zookeeper_dynamic_config/</link><pubDate>Wed, 17 Mar 2021 14:22:52 +0800</pubDate><guid>https://backendhouse.github.io/post/zookeeper_dynamic_config/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 〇、背景 在zookeeper 3.5.0版本之前,其配置不支持动态加载,只能通过重启加载新配置。因</description></item><item><title>【转】化繁为简,Apache APISIX 集成 ClickHouse 插件提升全链路日志效率</title><link>https://backendhouse.github.io/post/%E5%8C%96%E7%B9%81%E4%B8%BA%E7%AE%80apache-apisix-%E9%9B%86%E6%88%90-clickhouse-%E6%8F%92%E4%BB%B6%E6%8F%90%E5%8D%87%E5%85%A8%E9%93%BE%E8%B7%AF%E6%97%A5%E5%BF%97%E6%95%88%E7%8E%87/</link><pubDate>Tue, 09 Mar 2021 18:30:08 +0800</pubDate><guid>https://backendhouse.github.io/post/%E5%8C%96%E7%B9%81%E4%B8%BA%E7%AE%80apache-apisix-%E9%9B%86%E6%88%90-clickhouse-%E6%8F%92%E4%BB%B6%E6%8F%90%E5%8D%87%E5%85%A8%E9%93%BE%E8%B7%AF%E6%97%A5%E5%BF%97%E6%95%88%E7%8E%87/</guid><description>Author:齐振东 Technical Writer: 曾奕霖 原文链接:https://apisix.apache.org/zh/blog/2022/03/04/apiga</description></item><item><title>如何在Bash脚本中引入alias</title><link>https://backendhouse.github.io/post/%E5%A6%82%E4%BD%95%E5%9C%A8bash%E8%84%9A%E6%9C%AC%E4%B8%AD%E5%BC%95%E5%85%A5alias/</link><pubDate>Mon, 08 Mar 2021 21:17:10 +0800</pubDate><guid>https://backendhouse.github.io/post/%E5%A6%82%E4%BD%95%E5%9C%A8bash%E8%84%9A%E6%9C%AC%E4%B8%AD%E5%BC%95%E5%85%A5alias/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 alias的使用 在日常开发中,为了提高运维效率,我们会用alias(命令别名)来定义命令的简称。</description></item><item><title>【译】Clickhouse与LDAP集成(一)</title><link>https://backendhouse.github.io/post/%E8%AF%91clickhouse%E4%B8%8Eldap%E9%9B%86%E6%88%90%E4%B8%80/</link><pubDate>Mon, 08 Mar 2021 14:23:08 +0800</pubDate><guid>https://backendhouse.github.io/post/%E8%AF%91clickhouse%E4%B8%8Eldap%E9%9B%86%E6%88%90%E4%B8%80/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 原文:https://altinity.com/blog/integrating-clickho</description></item><item><title>C++关键字之likely和unlikely</title><link>https://backendhouse.github.io/post/c++%E5%85%B3%E9%94%AE%E5%AD%97%E4%B9%8Blikely%E5%92%8Cunlikely/</link><pubDate>Mon, 08 Mar 2021 10:18:48 +0800</pubDate><guid>https://backendhouse.github.io/post/c++%E5%85%B3%E9%94%AE%E5%AD%97%E4%B9%8Blikely%E5%92%8Cunlikely/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 流水线技术 现代CPU为了提高执行指令执行的吞吐量,使用了流水线技术,它将每条指令分解为多步,让不</description></item><item><title>Zookeeper源码编译打包与逆向工程</title><link>https://backendhouse.github.io/post/zookeeper%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91%E6%89%93%E5%8C%85%E4%B8%8E%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B/</link><pubDate>Mon, 08 Mar 2021 10:09:21 +0800</pubDate><guid>https://backendhouse.github.io/post/zookeeper%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91%E6%89%93%E5%8C%85%E4%B8%8E%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 最近要将zookeeper静态版本升级到动态版本(为什么升级,如何升级是另一个话题了,后续我将专</description></item><item><title>Boltdb学习笔记之〇--概述</title><link>https://backendhouse.github.io/post/boltdb%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8B-%E6%A6%82%E8%BF%B0/</link><pubDate>Sun, 07 Mar 2021 20:28:52 +0800</pubDate><guid>https://backendhouse.github.io/post/boltdb%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8B-%E6%A6%82%E8%BF%B0/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 看了boltdb也有一阵子了,看完之后总想写点什么,因为感觉到这可能是个不小的坑,所以迟迟没有动</description></item><item><title>分享一个有意思的gdb插件</title><link>https://backendhouse.github.io/post/%E5%88%86%E4%BA%AB%E4%B8%80%E4%B8%AA%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84gdb%E6%8F%92%E4%BB%B6/</link><pubDate>Sun, 07 Mar 2021 10:40:05 +0800</pubDate><guid>https://backendhouse.github.io/post/%E5%88%86%E4%BA%AB%E4%B8%80%E4%B8%AA%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84gdb%E6%8F%92%E4%BB%B6/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 最近在一个技术分享上听说了一个有意思的gdb插件:peta(https://github.com</description></item><item><title>一文读懂clickhouse集群监控</title><link>https://backendhouse.github.io/post/clickhouse-monitor/</link><pubDate>Sun, 28 Feb 2021 10:07:14 +0800</pubDate><guid>https://backendhouse.github.io/post/clickhouse-monitor/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 一文读懂clickhouse集群监控 常言道,兵马未至,粮草先行,在clickhouse上生产环境</description></item><item><title>《赢》读书笔记</title><link>https://backendhouse.github.io/post/%E8%B5%A2%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/</link><pubDate>Sat, 27 Feb 2021 15:16:21 +0800</pubDate><guid>https://backendhouse.github.io/post/%E8%B5%A2%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 书籍信息: 赢(第2版)(中信商业经典) 杰克•韦尔奇 (Jack Welch) 很久之前便多次听说过这本书。现在已经202</description></item><item><title>《暗时间》读书笔记</title><link>https://backendhouse.github.io/post/%E6%9A%97%E6%97%B6%E9%97%B4%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/</link><pubDate>Sat, 27 Feb 2021 14:31:04 +0800</pubDate><guid>https://backendhouse.github.io/post/%E6%9A%97%E6%97%B6%E9%97%B4%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 如果把大脑比作一个CPU, 我们日常的工作、生活、学习类似CPU处理前台任务,而暗时间就像CPU处</description></item><item><title>30分钟入门Vim</title><link>https://backendhouse.github.io/post/30%E5%88%86%E9%92%9F%E5%85%A5%E9%97%A8vim/</link><pubDate>Thu, 25 Feb 2021 17:32:08 +0800</pubDate><guid>https://backendhouse.github.io/post/30%E5%88%86%E9%92%9F%E5%85%A5%E9%97%A8vim/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 30分钟入门Vim Vim是从vi发展出来的一个文本编辑器,是Linux后端开发人员必会工具之一,</description></item><item><title>30分钟入门GDB</title><link>https://backendhouse.github.io/post/30%E5%88%86%E9%92%9F%E5%85%A5%E9%97%A8gdb/</link><pubDate>Wed, 24 Feb 2021 16:54:13 +0800</pubDate><guid>https://backendhouse.github.io/post/30%E5%88%86%E9%92%9F%E5%85%A5%E9%97%A8gdb/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 GDB全称GDB Debugger。GDB具备各种调试功能,使用GDB的调试人员可以查看及修改程序</description></item><item><title>《Linux Shell脚本攻略》读书笔记</title><link>https://backendhouse.github.io/post/linux-shell%E8%84%9A%E6%9C%AC%E6%94%BB%E7%95%A5/</link><pubDate>Wed, 10 Feb 2021 15:13:04 +0800</pubDate><guid>https://backendhouse.github.io/post/linux-shell%E8%84%9A%E6%9C%AC%E6%94%BB%E7%95%A5/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 《Linux Shell脚本攻略》是一本适合初学者系统学习Bash Shell的书籍,墙裂推荐。以下</description></item><item><title>Python编码问题九问</title><link>https://backendhouse.github.io/post/python%E7%BC%96%E7%A0%81%E9%97%AE%E9%A2%98faq/</link><pubDate>Mon, 08 Feb 2021 21:26:18 +0800</pubDate><guid>https://backendhouse.github.io/post/python%E7%BC%96%E7%A0%81%E9%97%AE%E9%A2%98faq/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 大家可能和我一样,在Python日常开发过程中会遇到各种各样的编码问题。因此在此以个人的踩坑经验</description></item><item><title>现代C++之右值语义</title><link>https://backendhouse.github.io/post/%E7%8E%B0%E4%BB%A3c++%E4%B9%8B%E5%8F%B3%E5%80%BC%E8%AF%AD%E4%B9%89/</link><pubDate>Sun, 07 Feb 2021 21:35:55 +0800</pubDate><guid>https://backendhouse.github.io/post/%E7%8E%B0%E4%BB%A3c++%E4%B9%8B%E5%8F%B3%E5%80%BC%E8%AF%AD%E4%B9%89/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 现代C++之右值语义 在现代C++的众多特性中,右值语义(std::move和std::forwa</description></item><item><title>C/C++关键字之restrict</title><link>https://backendhouse.github.io/post/c-c++%E5%85%B3%E9%94%AE%E5%AD%97%E4%B9%8Brestrict/</link><pubDate>Sat, 06 Feb 2021 21:30:12 +0800</pubDate><guid>https://backendhouse.github.io/post/c-c++%E5%85%B3%E9%94%AE%E5%AD%97%E4%B9%8Brestrict/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 C/C++关键字之restrict 在C语言中,restrict关键字用于修饰指针(C99标准)。</description></item><item><title>C++代码模板之CRTP</title><link>https://backendhouse.github.io/post/c++%E4%BB%A3%E7%A0%81%E6%A8%A1%E6%9D%BF%E4%B9%8Bcrtp/</link><pubDate>Thu, 28 Jan 2021 19:43:47 +0800</pubDate><guid>https://backendhouse.github.io/post/c++%E4%BB%A3%E7%A0%81%E6%A8%A1%E6%9D%BF%E4%B9%8Bcrtp/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 本文将介绍一下c++代码模板的小技巧 &mdash;&ndash; CRTP 虚函数 在介绍 CRTP 之前,我们先来了解下虚函数。 虚函数是通过指</description></item><item><title>一些有意思的shell命令</title><link>https://backendhouse.github.io/post/%E4%B8%80%E4%BA%9B%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84shell%E5%91%BD%E4%BB%A4/</link><pubDate>Thu, 28 Jan 2021 19:19:18 +0800</pubDate><guid>https://backendhouse.github.io/post/%E4%B8%80%E4%BA%9B%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84shell%E5%91%BD%E4%BB%A4/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 最近偶然看到一些有意思的shell命令,分享给大家。 fork炸弹 代码如下 :(){ :|:&amp; };: 还是看不懂,将:替</description></item><item><title>Redis实现分布式锁</title><link>https://backendhouse.github.io/post/redis%E5%AE%9E%E7%8E%B0%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81/</link><pubDate>Thu, 28 Jan 2021 19:17:48 +0800</pubDate><guid>https://backendhouse.github.io/post/redis%E5%AE%9E%E7%8E%B0%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 一、redis分布式锁的简易实现 用redis实现分布式锁是一个老生常谈的问题了。因为redis单</description></item><item><title>Zookeeper Go Client原理总结</title><link>https://backendhouse.github.io/post/zookeeper-client%E5%8E%9F%E7%90%86%E6%80%BB%E7%BB%93/</link><pubDate>Thu, 28 Jan 2021 19:15:42 +0800</pubDate><guid>https://backendhouse.github.io/post/zookeeper-client%E5%8E%9F%E7%90%86%E6%80%BB%E7%BB%93/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 〇、环境 zk client: github.com/samuel/go-zookeeper 一、zk client状态 zookeeper是一款流行的分布式协调组件,被广泛用于l</description></item><item><title>推荐几个好用的效率神器</title><link>https://backendhouse.github.io/post/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E5%A5%BD%E7%94%A8%E7%9A%84%E6%95%88%E7%8E%87%E7%A5%9E%E5%99%A8/</link><pubDate>Thu, 28 Jan 2021 19:14:14 +0800</pubDate><guid>https://backendhouse.github.io/post/%E6%8E%A8%E8%8D%90%E5%87%A0%E4%B8%AA%E5%A5%BD%E7%94%A8%E7%9A%84%E6%95%88%E7%8E%87%E7%A5%9E%E5%99%A8/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 工欲善其器,必先利其器。性能与效率是程序员们永恒的追求,对代码如此,对日常搬砖也应如此。对于日常</description></item><item><title>STL源码分析--functional</title><link>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-functional/</link><pubDate>Thu, 28 Jan 2021 19:12:57 +0800</pubDate><guid>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-functional/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 1 相关头文件 functional functional.h stl_function.h 2 一元函数对象 一元函数对象,是指这类函数对象只接受一个参数并返回一个参数。 un</description></item><item><title>STL源码分析--algorithm</title><link>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-algorithm/</link><pubDate>Thu, 28 Jan 2021 19:09:49 +0800</pubDate><guid>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-algorithm/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 STL中实现了一些跟容器相关的一些算法。这里介绍algorithm头文件中一些有意思的算法实现。</description></item><item><title>STL源码分析--bitset</title><link>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-bitset/</link><pubDate>Thu, 28 Jan 2021 19:08:36 +0800</pubDate><guid>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-bitset/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 1 相关头文件 bitset 2 bitset bitset中STL中用于表示位图的容器,它支持读写特定bit、从整数或字符串</description></item><item><title>STL源码分析--rbtree</title><link>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-rbtree/</link><pubDate>Thu, 28 Jan 2021 19:05:48 +0800</pubDate><guid>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-rbtree/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 1 相关头文件 tree.h stl_tree.h map.h stl_map.h set.h stl_set.h 2 红黑树的实现 首先重温下红黑树的定义。同时满足以下条件的二叉树才可称之为</description></item><item><title>STL源码分析--traits</title><link>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-traits/</link><pubDate>Thu, 28 Jan 2021 19:03:12 +0800</pubDate><guid>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-traits/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 traits(译作萃取)是C++中一种特殊的编程技法,它是模板元编程最直接的用例之一。通过tra</description></item><item><title>STL源码分析--iterator</title><link>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-iterator/</link><pubDate>Thu, 28 Jan 2021 19:00:45 +0800</pubDate><guid>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-iterator/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 1 相关头文件 iterator iterator.h stl_iterator.h stl_iterator_base.h 2 输入迭代器 2.1 iterator的种类 在STL中,迭代器分为输入迭代器、输出迭</description></item><item><title>STL源码分析--deque</title><link>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-deque/</link><pubDate>Thu, 28 Jan 2021 18:55:36 +0800</pubDate><guid>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-deque/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 1 deque相关头文件 deque deque.h stl_deque.h 2 deque的数据结构 deque为双向队列,同时支持从队首和队尾插入</description></item><item><title>STL源码分析--list</title><link>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-list/</link><pubDate>Thu, 28 Jan 2021 18:47:18 +0800</pubDate><guid>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-list/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 1 相关文件 list list.h stl_list.h 2 链表节点结构 基类_List_node_base只有_M_prev, _M_pre</description></item><item><title>STL源码分析--string</title><link>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-string/</link><pubDate>Thu, 28 Jan 2021 18:44:25 +0800</pubDate><guid>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-string/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 1 string的数据结构 从定义可知, string其实是base_string的特化类,strin</description></item><item><title>STL源码分析--vector</title><link>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-vector/</link><pubDate>Wed, 27 Jan 2021 23:51:24 +0800</pubDate><guid>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-vector/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 1 相关头文件 stl_vector.h vector.h vector 2 内存分配 vector默认使用__default_alloc_template</description></item><item><title>STL源码分析--内存分配</title><link>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D/</link><pubDate>Wed, 27 Jan 2021 19:27:00 +0800</pubDate><guid>https://backendhouse.github.io/post/stl%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D/</guid><description>更多精彩内容,请关注微信公众号:后端技术小屋 说明:STL采用SGI版本, 下载地址 1 相关头文件 stl_alloc.h alloc.h 2 allocator STL中默认使用的内存分配器,被广泛用于</description></item><item><title/><link>https://backendhouse.github.io/post/clickhouse%E6%96%B0%E7%89%B9%E6%80%A7%E4%B9%8B-mergetree%E5%90%AF%E5%8A%A8%E5%8A%A0%E9%80%9F%E5%8E%9F%E7%90%86%E7%AF%87/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://backendhouse.github.io/post/clickhouse%E6%96%B0%E7%89%B9%E6%80%A7%E4%B9%8B-mergetree%E5%90%AF%E5%8A%A8%E5%8A%A0%E9%80%9F%E5%8E%9F%E7%90%86%E7%AF%87/</guid><description>[TOC]
前言 在上篇文章中,我们介绍了clickhouse的新特性——MergeTree启动加速,及其使用方法。本文将介绍MergeTree启动加速的设计原理。
MergeTree启动原理 part结构 我们知道,在clickhouse中,MergeTree表由一个个part组成。每个part对应一个目录,该目录下有两类文件:元数据文件,数据文件和projection part目录(如果该表创建了projection的话)
$ ll ./20210321_310_310_0 total 36 -rw-r----- 1 root root 28 Feb 9 14:26 primary.idx -rw-r----- 1 root root 4 Feb 9 14:26 partition.dat -rw-r----- 1 root root 4 Feb 9 14:26 minmax_day.idx -rw-r----- 1 root root 10 Feb 9 14:26 default_compression_codec.txt -rw-r----- 1 root root 1648 Feb 9 14:26 data.mrk3 -rw-r----- 1 root root 2110 Feb 9 14:26 data.bin -rw-r----- 1 root root 1 Feb 9 14:26 count.</description></item><item><title/><link>https://backendhouse.github.io/post/optimizing-software-in-c++%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%E4%B8%80-the-efficiency-of-different-c++-constructs-/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://backendhouse.github.io/post/optimizing-software-in-c++%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%E4%B8%80-the-efficiency-of-different-c++-constructs-/</guid><description>世面上将c++性能优化的书其实不少了,但是很多都停留在架构、算法、数据结构层面,大都是些老生常谈了。而从语言本身、操作系统、硬件层面系统阐述性能优化的技术书则少了很多。而《optimizing software in c++》正是这样的一本书,作者Agner Fog的职业也挺有意思,除了是计算机科学家,还是进化人类学家,而且后者看起来还是主业..
这周末花了一天时间阅读了这本书中感兴趣的几个章节。笔者将会连载几篇读书笔记总结主要知识点。
7 The efficiency of different C++ constructs 8 Optimizations in the compiler 9 Optimizing memory access 11 Out of order execution 12 Using vector operations The efficiency of different C++ constructs 这章主要介绍c++语言中各种特性对性能的影响。
不同的变量存储位置 stack 众所周知,函数中的临时变量或对象一般存储在内存空间中的stack区。每当调用函数时,参数和临时变量进栈,当函数返回时,参数和临时变量出。s由于stack可被不断重复使用,栈是内存空间中最高效的存储方式。当临时变量中没有大对象时,访问栈上的临时变量也基本能用上L1 data cache.
global or static 在函数体之外声明的变量称之为global变量,可被任何函数访问。被static修饰的变量称为static变量。
global和static变量在程序运行期间会被放置于内存空间中的静态数据区。静态数据区域分为三个部分:一部分存储const类型的global/static变量,一部分存储已被初始化的global/static变量,最后一部分存储未被初始化的global/static变量
使用静态数据区的好处是,global/static变量在程序启动前就有专门的存储位置,坏处是在程序的生命周期内,这些存储位置将被一直占据,可能会降低data cache的效率。
所以建议尽量不要使用global变量
register register变量存储在cpu寄存器中,函数中的临时变量特别适合放到register中。优点很明显,访问register变量比访问RAM快得多,但是cpu寄存器大小是非常有限的,在64位x86架构中,有:
14个整数寄存器 16个浮点寄存器 volatile volatile用于声明一个变量可被其他线程改变,阻止编译器依赖变量始终具有代码中先前分配的值的假设来进行优化 。
volatile int seconds; // incremented every second by another thread void DelayFiveSeconds() { seconds = 0; while (seconds &lt; 5) { // do nothing while seconds count to 5 } } 上面的代码如果不声明为volatile, 编译器将任务while条件一直成立,即使别的线程中改变了seconds的值。</description></item><item><title/><link>https://backendhouse.github.io/post/optimizing-software-in-c++%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%E4%BA%8C/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://backendhouse.github.io/post/optimizing-software-in-c++%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%E4%BA%8C/</guid><description>书接上回,继续阅读第七章(The efficiency of different C++ constructs)
The efficiency of different C++ constructs 循环 循环的效率取决于微处理器对循环控制分支的预测能力。一个具有一个较小并且固定的重复计数,没有分支的循环,可以完美地被预测。
循环展开 展开前
int i; for (i = 0; i &lt; 20; i++) { if (i % 2 == 0); FuncA(i); else FuncB(i); FuncC(i); } 展开后
int i; for (i = 0; i &lt; 20; i+=2) { FuncA(i); FuncC(i); FuncB(i+1); FuncC(i+1); } 这样做的好处:
循环次数变成了10次而不是20次,CPU可以更完美的进行预测 if分支被消除,有利于编译器自动进行向量化等优化 循环展开的坏处:
展开循环后在代码缓存中占用更多空间
非常小的循环展开不如不展开
如果重复计数为奇数,并将其展开为2, 则必须在循环之外执行额外的迭代。</description></item><item><title/><link>https://backendhouse.github.io/topost/c++17%E5%AE%8C%E5%85%A8%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://backendhouse.github.io/topost/c++17%E5%AE%8C%E5%85%A8%E6%8C%87%E5%8D%97%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/</guid><description>概论 源码:http://www.cppstd17.com
结构化绑定</description></item></channel></rss>