p__n

34
获赞数
15
关注数
11
粉丝数
武汉
IP 属地广东
2019-10-25 加入
浏览 20.6k

科学告诉你什么是不可能的;工程则告诉你,付出一些代价,可以把它变成可行,这就是科学和工程不同的魅力。

491 声望|学徒
全站排名超越 97% 用户
c++
367
c
99
算法
59
模板
52
后端
45
个人动态
  • 发布了文章2023-12-10
    bazel学习记录
    基础概念starlark简要介绍语法规范depsets介绍Providersprovider函数Provider可以认为代表了结构体这个大集合关于init回调
  • 回答了问题2022-10-01
    c++ 临时变量作为const T& 返回值,被接收后为什么会被析构?
    看这里:Dangling references另外,右值引用和常量左值引用是可以扩展临时对象的生命周期的:Lifetime of a temporary这两种情况区分一下就行
  • 发布了文章2022-08-17
    面试准备系列之操作系统
    linux内存管理部分物理内存、虚拟内存、分段分页、mmu、页表、tlb的基本概念进程的内存模型:栈、文件映射区、栈、data段、bss段、text段物理内存管理:buddy和slab,参考这篇文章虚拟内存管理:brk和mmap,参考这篇文章,申请虚拟内存时还没有分配物理内存,缺页异...
  • 回答了问题2022-08-07
    C/C++ 中有没有能将数组转化成音频输出播放的方法和代码?
    音视频处理看FFmpeg哦
  • 赞了文章2022-08-02
    小白详解 Trie 树
    最近学习自然语言处理(NLP)相关的知识,认识了 Trie 这种树形数据结构,在 NLP 中一般会用其存储大量的字典字符以用于文本的快速分词;除此之外,典型应用场景还包括大批量文本的:词频统计、字符串查询和模糊匹配(比如关键词的模糊匹配)、字符串排序等任务;由...
  • 发布了文章2022-07-30
    ClickHouse 源码泛读
    ClickHouse 源码泛读前言首先从最整体的视角看下ClickHouse的处理流程:入口函数TCP/HTTP/RPCHandler::runImpl构建pipelinestate.io = executeQuery() 调度执行pipeline, reply to client {代码...} 整体分为两大块:解析sql,构建pipeline。然后根据pipeline的特点...
  • 发布了文章2022-07-29
    面试准备系列之计算机网络
    由SSL发展而来,处于应用层和传输层之间的表示层和会话层,与应用层协议相互独立且相互协作。特点:其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。秘钥体系:公钥、私钥体系:多对一非对称加密信道...
  • 赞了文章2022-07-22
    ClickHouse入门实践--MergeTree原理解析
    表引擎是ClickHouse设计实现中的一大特色。可以说,是表引擎决定了一张数据表最终的“性格”,比如数据表拥有何种特性、数据以何种形式被存储以及如何被加载。ClickHouse拥有非常庞大的表引擎体系,截至本书完成时,其共拥有合并树、外部存储、内存、文件、接口和其他6...
  • 回答了问题2022-07-15
    protobuf怎么会有这么多转义字符?
    如果一定要pb存储数据并且分割的话,前缀一个长度就行。不过有个疑问,以字符串为主要组成部分的数据,pb和json的大小会差别很大么?可以考虑json + 数据压缩算法来做。灵活且可以根据数据特点选择合适的压缩方法。
  • 回答了问题2022-07-08
    std::move()为什么并没有发生移动呢
    我发现很多人还是不理解“移动语义”的含义到底是什么,见下:移动指的是资源更有效率(相比于复制)的在对象间转移。实现自定义的移动构造/移动赋值函数实际上就是在完成“资源转移”的具体逻辑。
  • 发布了文章2022-06-18
    learn
    2022-06-18:[链接] 这个内存数据库使用的哈希表 Dash table,使用了extendible hashing(学习)linux 异步io:[链接][链接] 一个相关的博客,国内没有比较详细的文档说明几个比较重要的issue(对于理解liburing和io_uring内部实现而言)[链接][链接]c++20 协程:[链...
  • 回答了问题2022-05-31
    使用类模板前后,类内私有成员访问权限为何改变
    原因是c++模板的两阶段编译检查[链接]如果在main函数中实例化了类模板并调用了copy函数,才会进行权限检查,如下:
  • 赞了文章2022-05-30
    深入解析 TiFlash丨多并发下线程创建、释放的阻塞问题
    对 TiFlash 和问题本身经过一段时间的了解后,认为方向应该在“公共组件”(全局锁、底层存储、上层服务等)上。在这个方向上做“地毯式”排查后, 终于定位到问题的一个重要原因:高并发下频繁的线程创建和释放, 这会引发线程在创建/释放过程出现排队和阻塞现象。
  • 回答了问题2022-05-02
    C++、Java 的泛型有约束吗,类似 Golang 的那种?
    c++20引入了concept,见:[链接][链接]20之前的话,用enable_if、void_t等工具控制选择的特化模板即可。
  • 关注了问题2022-05-02
    C++、Java 的泛型有约束吗,类似 Golang 的那种?
  • 发布了文章2022-04-25
    面试准备系列之c++
    static关键字的作用有哪些(修饰全局变量、修饰局部变量、修饰类的成员函数和数据成员)(扩展:name的两个独立的性质:存储周期storage duration 和 链接性 linkage)const关键字(修饰类型、修饰成员函数、修饰指针)
  • 发布了文章2022-03-13
    面试准备系列之数据库
    关系模型 关系模型用表的集合来表示数据间的联系。每个表有多列,每列有唯一的列名。 超码:一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一的标识一个元祖。 候选码:任意真子集都不是超码的超码被称为候选码。 主码:数据库中实际用来区分元组的...
  • 赞了文章2022-03-12
    Linux Namespace系列(04):mount namespaces (CLONE_NEWNS)
    Mount namespace用来隔离文件系统的挂载点, 使得不同的mount namespace拥有自己独立的挂载点信息,不同的namespace之间不会相互影响,这对于构建用户或者容器自己的文件系统目录非常有用。
  • 赞了文章2022-02-03
    TiKV 源码解析系列——multi-raft 设计与实现
    本系列文章主要面向 TiKV 社区开发者,重点介绍 TiKV 的系统架构,源码结构,流程解析。目的是使得开发者阅读之后,能对 TiKV 项目有一个初步了解,更好的参与进入 TiKV 的开发中。需要注意,TiKV 使用 Rust 语言编写,用户需要对 Rust 语言有一个大概的了解。另外,...
  • 发布了文章2022-01-01
    leveldb源代码分析 合集
    leveldb源码版本 master分支(aa5479bbf47e9df86e0afbb89e6246085f22cdd4)release版本好旧关于LSM tree磁盘随机操作慢,LSM tree采用追加的方式避免随机写,付出的代价就是牺牲读性能、写放大。leveldb中有哪些文件sstable 一个持久化的,有序的sortedMap,存储在磁盘...