摘要: 静态链接库在程序编译阶段就完成了链接工作,完成链接后,依赖的库就都打入了可执行文件中,所以文件大小一般会比较大。 而动态库链接库是在程序运行时才被链接的,所以磁盘上只要保留一份副本,因此节约了磁盘空间。如果发现了bug或要升级也很简单,只要用新的库把原来的替换掉就行了。Linux环境下的动态链接对象 阅读全文
posted @ 2023-02-05 20:09 Aitozi 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 现代操作系统如何装载可执行文件? 给进程分配独立的虚拟地址空间 建立虚拟地址空间和可执行文件的映射关系 把CPU指令寄存器设置成可执行文件的入口地址,启动执行 可执行文件在装载的过程中实际上是映射的虚拟地址空间,所以可执行文件通常被叫做映像文件(或者Image文件). ELF文件的两种视角 Sect 阅读全文
posted @ 2023-02-05 13:34 Aitozi 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 看以下例子 main.c extern int x; int main() { int y = 100; swap(&x,&y); return 0; } int x = 1; void swap(int* x, int* y) { int temp = *x; *x = *y; *y = temp 阅读全文
posted @ 2023-02-04 22:18 Aitozi 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 编译过程拆解 预处理处理生成.i文件, .i文件还是源码文件 将所有的宏定义#define展开。 处理#if, #else, #endif等条件编译指令 处理#include, 原地插入文件 cpp HelloWorld.c > HelloWorld.i可以这样来进行预编译,cpp是C prepro 阅读全文
posted @ 2023-02-04 19:19 Aitozi 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 一直拖到春节假期快结束了,才来写去年的读书总结,着实有点拖延 :) 今年也是分为3个部分,因为读了一部分纸质书,大部分是微信读书,所以读的列表基本是从豆瓣贴过来的。 技术书籍 《深入剖析Kubernetes》 《Rust权威指南》 《Vim实用技巧》 《卓有成效的工程师》 非技术书籍 《生命3.0 阅读全文
posted @ 2023-01-27 21:04 Aitozi 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 本文是阅读 LinkedIn 公司2020年发表的论文 Magnet: Push-based Shuffle Service for Large-scale Data Processing 一点笔记。 什么是Shuffle 以上图为例,在一个DAG的执行图中,节点与节点之间的数据交换就是Shuffl 阅读全文
posted @ 2022-10-21 13:42 Aitozi 阅读(479) 评论(0) 推荐(0) 编辑
摘要: The compiler in the server VM now provides correct stack backtraces for all "cold" built-in exceptions. For performance purposes, when such an excepti 阅读全文
posted @ 2022-09-20 13:14 Aitozi 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 在一个Clion项目中定义多个main函数编译的时候会报这个错误 显示就是main函数重复了,查阅了下好像可以通过修改CMakeList.txt来修改,将其定义成两个独立的executable即可 add_executable(hello test/hello_world.cpp) add_exec 阅读全文
posted @ 2022-09-17 22:49 Aitozi 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 子图复用优化是为了找到SQL执行计划中重复的节点,将其复用,避免这部分重复计算的逻辑。先回顾SQL执行的主要流程 parser -> validate -> logical optimize -> physical optimize -> translateToExecNode。 而子图复用的逻辑就 阅读全文
posted @ 2022-09-12 22:37 Aitozi 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 出错代码 写java 和 scala 混合代码的时候遇到一个小问题 def extractRefInputFieldsWithType(exprs: JList[RexNode]): Array[(Int, RelDataType)] = { val visitor = new InputRefVi 阅读全文
posted @ 2022-09-12 15:59 Aitozi 阅读(315) 评论(0) 推荐(0) 编辑