源码阅读
ClickHouse 源码解析: 综述
ClickHouse 源码阅读系列 (2022 年立的 Flag 之一), 每月更新 2 篇。ClickHouse 源码解析: 综述 ClickHouse 源码解析: MergeTree Write-Path ClickHouse 源码解析: MergeTree Read-Path ClickHouse 源码解析: MergeTree Merge Algorithm (待更)ClickHouse 源码解析: ReplicatedMergeTree (待更)ClickHouse 源码解析: Vector Engine (向量化引擎) (待更)ClickHouse 源码解析: IColumn & Data Type (待更)ClickHouse 源码解析: Block …
为什么用native code,是为了效率,原因我不解释了。 我说说如看内置函数的源码。JS的内置函数由V8实现,称为Builtin(built-in-function)功能。Builtin的实现方式主要有这么几种:C++,CSA,TQ,JS。源码中都能查找,你可以直接看,源码文件位置:v8\src\builtins\。我再说说debug方法,我直接粘贴我发表过的文章,该文章讲的是如何debugV8的字节码,字节码是内置函数,所以本文所讲的方法也适用于debug内置方法。 摘选部分内…
学习了黄建宏老师的《Redis设计与实现》之后,对redis的部分实现有了一个简明的认识。在面试过程中,redis确实成为了面试官考核我的一个亮点,恰好以后的工作又与redis有着千丝万缕的联系,于是就想趁着毕业前的这段时间把redis的源代码研究一下,为以后的工作打个良好的基础。 Redis简介redis全称REmote DIctionary Server,是一个由Salvatore Sanfilippo写的高性能key-value存储系统,其完全开源免费,遵守BSD协议。Redis与其…
如何阅读OpenStack源码
1 OpenStack基础1.1 OpenStack组件介绍OpenStack是一个IaaS云计算平台开源实现,其对标产品为AWS。最开始OpenStack只有两个组件,分别为提供计算服务的Nova以及提供对象存储服务的Swift,其中Nova不仅提供计算服务,还包含了网络服务、块存储服务、镜像服务以及裸机管理服务。之后随着项目的不断发展,从Nova中根据功能拆分为多个独立的项目,如nova-volume拆分为Cinder项目提供块存储服务,nova-image拆分为Glance项目,提供镜…
Redis源码(1)基本数据结构、SDS、字典Dict、跳表skiplist
前言面试的时候发现说自己读过Redis源码是一个很拉分的点,最近面试完毕特此对之前的笔记做一个总结。 ——2021/3/17 青玉白露 源码阅读方式建议:VScode打开Redis源码,结合黄健宏老师的《Redis设计与实现》,先理解概念,再回归代码。 在阅读到数据库的具体实现时,建议在Linux系统下编译并运行Redis,对其的理解将更为直观。 源码阅读顺序:阅读数据结构的源码阅读内存编码数据结构实现阅读数据类型的实现阅读单机数据库相关…
ClickHouse 源码解析: MergeTree Read Path
ClickHouse 源码解析: 综述 ClickHouse 源码解析: MergeTree Write-Path ClickHouse 源码解析: MergeTree Read-Path 就是本篇ClickHouse 源码解析: MergeTree Merge Algorithm (待更)ClickHouse 源码解析: ReplicatedMergeTree (待更)ClickHouse 源码解析: MergeTree (待更)ClickHouse 源码解析: Vector Engine (向量化引擎) (待更)ClickHouse 源码解析: IColumn & Data Type (待更)ClickHouse 源码解析: Block & Block Streams (…
电商搜索工程:Rank
本节为电商搜索工程的排序篇,主要通过开源框架介绍搜索Rank部分的工程实现(该部分对推荐系统同样适用),包括数据处理、模型训练、方案部署等实现细节。 开源环境下,比较为人熟知的CTR预估框架应该属 DeepCTR 。框架提供了比较容易使用/拓展的深度学习CTR模型,同时提供了一些常用的layer组件,方便使用者定制模型,总体来说模型库丰富、代码清晰易用。而前些日刷到阿里巴巴开源了 EasyRec 排序框架,调研了一下,相比DeepCTR,…
这个问题被很多人问过,很早就想写一下。尤其是如何在 IntelliJ IDEA 中单步调试 Spark。 若无特殊说明,本篇均以撰稿时最新的 Spark 2.0 SNAPSHOT 和 IntelliJ IDEA 2016 为基础,并以 SBT 为主要 build 工具。 IDE 选择 Spark 的主力 IDE 无疑是 IntelliJ IDEA。在 Databricks 我也见过直接用 Vim、Sublime 的同事,然而但凡用 IDE 的,清一色是 IDEA,从没见过谁用 Eclipse 和/或 NetBeans。所以,作为主力 contributor 的日…
Detectron2源码阅读笔记-(一)Config&Trainer
一、代码结构概览1.核心部分configs:储存各种网络的yaml配置文件datasets:存放数据集的地方detectron2:运行代码的核心组件tools:提供了运行代码的入口以及一切可视化的代码文件。2.Tutorial部分demo:显而易见就是demodocs: 同样显而易见。。tests:提供了一些测试代码projects:提供了真实的项目代码示例,之后自己的代码结构可参照这个结构写。二、代码逻辑分析1.超参数配置进入 tools/train_net.py的main函数,第一行cfg …
啊哈,我觉得由我来回答这个问题再合适不过了。 2011年底开始阅读Lua代码,选择的版本是5.1.4,在那个时候是最新的版本了,不过2012年不仅有更新的5.1版本出来,还有最新的5.2.暂时管不了这么多,继续看这个版本先了。 历经近一年,中间酸甜苦辣只有自己知道,你问有什么方法,我的回答只有坚持。一边看代码,一看补一些基础(比如看龙书),到最后觉得差不多了就自己抄Lua虚拟机代码来跟踪它的实现。 我的博客上: codedump ,有…
ClickHouse 源码解析: MergeTree Merge 算法
ClickHouse 源码解析: MergeTree Merge 算法ClickHouse 源码解析: 综述 ClickHouse 源码解析: MergeTree Write-Path ClickHouse 源码解析: MergeTree Read-Path ClickHouse 源码解析: MergeTree Merge Algorithm 就是这篇ClickHouse 源码解析: 查询引擎经典理论 ClickHouse 源码解析: 查询引擎实现概述 (待更)ClickHouse 源码解析: 查询引擎源码解析 (待更)ClickHouse 源码解析: ReplicatedMergeTree (待更)ClickHouse 源码解析: Vec…
由浅入深手撕高级应用-@Order排序源码分析
更多Spring源码学习教程及课件复制这里
https://docs.qq.com/doc/DTUVBd1ZETWtGdmhM
发您学习
摘要之前在回答 https://www.zhihu.com/question/37240878/answer/2852565147 有简单梳理过Servlet 的数据流, 其中有一个问题是:原问题链接: https://stackoverflow.com/questions/18561092/does-servlet-engine-read-the-whole-request-before-calling-a-servlet Servlet engine (e.g. Tomcat or Jetty ) receives an HTTP request and calls a servlet with an HttpServletRequest object, which contains an InputStream of the request body. Now I wonder if the engine has already read the whole request from the network and the InputStream is just a buf…
不仅仅是阅读代码,得理解其设计思路,理解其精髓,redis设计与实现确实是一本非常优秀得数据,我也正超这个方向准备写一本《mongodb内核设计与实现》,也非常感谢redis源码和nginx源码,通过理解其实现精髓,顺利从传统嵌入式转入互联网行业,并两年内实现了待遇十倍增长,绝不是吹牛逼,真实经历。 阅读源码前建议阅读写《redis设计与实现》,边阅读代码边调试,记住切记不要只是为了读代码而读代码,提前自己抛出问题,为何作…
由浅入深手撕高级应用-@Resource源码调试
更多Spring源码学习教程及课件复制这里
https://docs.qq.com/doc/DTUVBd1ZETWtGdmhM
发您学习
Linux 内核 | 内存管理——slab 分配器
简介Linux 内核 | 内存管理--slab 分配器 在Linux中,伙伴分配器(buddy allocator)是以页为单位管理和分配内存。但在内核中的需求却以字节为单位(在内核中面临频繁的结构体内存分配问题)。假如我们需要动态申请一个内核结构体(占 20 字节),若仍然分配一页内存,这将严重浪费内存。那么该如何分配呢?slab 分配器专为小内存分配而生,由Sun公司的一个雇员 Jeff Bonwick在Solaris 2.4中设计并实现。slab分配器分配内存以字节…
【AlexeyAB DarkNet框架解析】十二,Dropout层代码详解
1. 前言继续DarkNet源码解析,本次解析 src/dropout.h和src/dropout.c两个文件,也即是Dropout层。2. Dropout在CNN中使用Dropout分成训练和测试两个阶段,在训练阶段,Dropout以一定的概率 [公式] 随机丢弃一部分神经元节点,即这部分神经元节点不参与计算,如下图所示。 [图片] 在训练时,每个神经元有概率 [公式] 的可能性被保留下来,即Dropout的丢弃概率为 [公式] 。在测试阶段,每个神经元都是存在的,权重参数 [公式] 要乘以 [公式] 成为 [公式] 。为什么测试阶段要乘以 [公式] …
Pinia源码解析【2.0.33】
pinia是 Vue 的专属状态管理库,并且可以同时支持 Vue 2 和 Vue 3。在Vue3的项目中,我们都会优先使用 Pinia,所以了解其基本的底层原理,有助于我们在项目中更好的应用。1,createPinia在Vue3项目中使用 pinia时,都会从pinia中引入一个createPinia方法,然后使用这个方法创建一个pinia实例。import { createPinia } from 'pinia' // 创建pinia const pinia = createPinia()接下来我们就从 import { createPinia } from 'pinia'…
一边阅读源码,一边画图记录调用链!不管是C/C++技术栈,还是PHP,Java技术栈,从事后端开发的朋友对 nginx一定不会陌生。想要深入学习 nginx,阅读源码一定是非常重要的一环,但nginx源码量毕竟还是不算少,一不小心就容易陷入某个细节,迷失在茫茫码海之中。 如果有一张地图,让我们开启上帝视角,总览全局,帮助我们快速学习整体框架结构,又能不至于迷失其中那就再好不过了!看到这篇文章的你有福了,笔者花了不少时间,把这…