程序员的故乡

 

2024年10月8日

Thriving in a Crowded and Changing World: C++ 2006–2020 读后总结

摘要: C++在编程语言排行榜里基本上一直在前三,可以说是经久不衰。可能很多人没有意识到C++无处不在,因为大多数 C++ 程序是在基础层,藏在应用的背后,对用户来说是不可见的。C++通常不开发web 应用程序(Java、Ruby on Rails、PHP等在这个领域中更合适)。但是C++的经常出现在诸如开 阅读全文

posted @ 2024-10-08 17:22 程鑫 阅读(30) 评论(0) 推荐(0) 编辑

C++20中对于并发方面的进步

摘要: 在当今的编程世界中,并发处理能力变得越来越重要。C++20 在并发方面带来了一些进步,使开发者能够更高效、更安全地编写多线程应用程序。这些进步主要包括: 作用域线程(Scoped Threads) 停止令牌(Stop Tokens) 作用域线程(Scoped Threads) 传统的线程管理常常需要 阅读全文

posted @ 2024-10-08 16:10 程鑫 阅读(331) 评论(0) 推荐(0) 编辑

ClickHouse性能调优 - 当磁盘IO是瓶颈的时候

摘要: 引言 ClickHouse的性能调优问题是一个大的话题。虽然ClickHouse以其高速的数据处理能力而闻名,但在实际使用中,磁盘IO常常成为影响系统性能的瓶颈。本文将探讨在磁盘IO成为瓶颈时,如何通过一系列优化措施来提升ClickHouse的整体性能。 磁盘IO瓶颈 磁盘IO瓶颈指的是在数据读写过 阅读全文

posted @ 2024-10-08 15:55 程鑫 阅读(92) 评论(0) 推荐(0) 编辑

2024年7月30日

手撸一个C++迭代器

摘要: 先撸一个简单版本 C++语言的特点就是少了一个符号都会造成非常不同的结果。以下代码有个很致命的错误,不知道能否一眼看出来。 // ranges_iterators.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include 阅读全文

posted @ 2024-07-30 20:40 程鑫 阅读(18) 评论(0) 推荐(0) 编辑

ClickHouse的向量处理能力

摘要: ClickHouse的向量处理能力 ClickHouse通过其强大的向量数据库功能,实现了高效的高维向量数据处理和搜索。这些功能包括支持余弦距离和欧几里得距离的相似度计算,以及近似最近邻搜索(如Annoy索引),极大地提升了性能和效率。通过将非结构化数据转换为向量,ClickHouse在推荐系统、问答系统、图像和视频搜索等领域展现了显著的应用价值。这种能力不仅提高了数据处理的精确度,还在大规模数据处理中实现了良好的性能与精确度平衡。 阅读全文

posted @ 2024-07-30 20:25 程鑫 阅读(385) 评论(2) 推荐(1) 编辑

2024年6月1日

STL库的ranges

摘要: C++20的 阅读全文

posted @ 2024-06-01 22:45 程鑫 阅读(76) 评论(0) 推荐(0) 编辑

2024年3月17日

ClickHouse中的各种设置

摘要: ClickHouse中的各种设置 ClickHouse中的设置有几百个,下面对这些设置做了一个简单的分类。 阅读全文

posted @ 2024-03-17 22:35 程鑫 阅读(12) 评论(0) 推荐(0) 编辑

OLAP与数据仓库和数据湖

摘要: OLAP与数据仓库和数据湖 本文阐述了OLAP、数据仓库和数据湖方面的基础知识以及相关论文。同时记录了我如何通过ChatGPT以及类似产品(通义千问、文心一言)来学习知识的。通过这个过程让我对于用AI科技提升学习和工作效率有了实践经验和切身感受。 预热 GPT> 你现在是一位OLAP的专家。 OLA 阅读全文

posted @ 2024-03-17 22:33 程鑫 阅读(139) 评论(0) 推荐(0) 编辑

mmap访问内存方式

摘要: mmap访问内存方式 请看下面的Java代码,这段程序是取自1brc竞赛的第一名的代码。 public static void main(String[] args) throws IOException, InterruptedException { ... ... try (var fileCh 阅读全文

posted @ 2024-03-17 22:29 程鑫 阅读(25) 评论(0) 推荐(0) 编辑

关于ClickHouse的一些小技巧

摘要: 关于ClickHouse的一些小技巧 设置变量 set param_name='Alex'; select {name:String}; projection的使用 基于projection(投影)的优化需要打开开关optimize_use_projections。ClickHouse里的proje 阅读全文

posted @ 2024-03-17 22:28 程鑫 阅读(79) 评论(0) 推荐(0) 编辑

导航