⽤ egg 孵化你的 SQL 优化器 - 王润基## RUST CHINA CONF 2023 第三届中国Rust开发者大会 6.17-6.18 @Shanghai ## 用 egg 孵化你的 SQL 优化器 王润基 RisingWave 内核开发工程师 ## RisingLight ## An Educational OLAP Database System ## RisingLight 查询引擎的整体结构  = \text{sizeof}(\text{uintptr\_t})$ ## size_t :表示大小的整数类型,其实等价于 uintptr_t • 除了指针需要随系统位数变化之外,数组的长度也是需要随系统位数变化的。 • 如果 64 位系统上 size_t 还是 uint32_t,那就无法表示超过 4GB 大小的数组了。 - 今日乳 ja 笑话:java 序。 ## int 类型对应的指针类型:int* - 指针,顾名思义,就是“指向”一个内存中的变量。 - 语法规定:任何类型 T 所对应的指针类型是 T*。 - 可以通过 & 运算符获取一个变量的指针(地址)。 - 可以通过 * 运算符访问指针指向的变量(左值)。 - 因此指针指向了变量,通过指针的 * 运算符写入的值,会造成原变量 x = 1 指针的用法。 $$ \begin{array}{r}0 码力 | 128 页 | 2.95 MB | 2 年前3
Back to Basics: Pointers0 码力 | 152 页 | 5.61 MB | 1 年前3
Class Layout0 码力 | 51 页 | 461.37 KB | 1 年前3
The Zig Programming Language 0.4.0 Documentation0 码力 | 207 页 | 5.29 MB | 2 年前3
C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理} ## 将多个逻辑上相关的变量包装成一个类 ## C++ 思想:封装 比如要表达一个数组,需要:起始地址指针 v,数组大小 n 因此 C++ 的 vector 将他俩打包起来,避免程序员犯错 0.cpp #include#include int main() Pig(),他会调用每个成员的无参构造函数。 但是请注意,这些类型不会被初始化为 0: 1. int, float, double 等基础类型 2. void *, Object * 等指针类型 3. 完全由这些类型组成的类 - 这些类型被称为 POD(plain-old-data)。 • POD 的存在是出于兼容性和性能的考虑。 ## name: weight: 878706000 ts/3/1/6/3/31632a2e97e99bfc9f7af9e11b226442/p39_1.jpg) ## 编译器默认生成的构造函数:初始化列表(感谢 C++11) - 当一个类(和他的基类)没有定义任何构造函数,这时编译器会自动生成一个参数个数和成员一样的构造函数。 - 他会将 {} 内的内容,会按顺序赋值给对象的每一个成员。 - 目的是为了方便程序员不必手写冗长的构造函数一个个赋值给成员。 0 码力 | 96 页 | 16.28 MB | 2 年前3
The Zig Programming Language 0.1.1 Documentation0 码力 | 82 页 | 2.67 MB | 2 年前3
micrograd++: A 500 line C++ Machine Learning Library0 码力 | 3 页 | 1.73 MB | 1 年前3
Back to Basics: Lambda Expressions0 码力 | 48 页 | 175.89 KB | 1 年前3
共 630 条
- 1
- 2
- 3
- 4
- 5
- 6
- 63













