Greenplum 编译安装和调试Greenplum 编译安装和调试 本文先介绍如何从源代码编译安装Greenplum、初始化Greenplum集群。然后介绍SQL在 Greenplum中的典型执行路径,最后介绍一些调试技巧。 源代码使用 Greenplum 开源社区最新源代码 6X_STABLE 分支: https://github.com/greenplum-db/gpdb,内核代码基于 PostgreSQL com/greenplum-db/gpdb-postgres-merge。 1. 从源代码编译 Greenplum Greenplum 目前官方支持 Redhat/Centos/SuSE/Ubuntu 等Linux系统。大量开发人员包括我自己 使用Mac系统,但是不在官方支持列表中。 1.1 在 Mac 系统上编译 首先需要关闭苹果操作系统的 SIP 特性,否则无法初始化集群。 1. 重启操作系统 python get-pip.py $ sudo pip install psutil lockfile paramiko setuptools epydoc // 需要安装 openssl,否则无法编译 $ brew install openssl && brew link openssl --force $ CPPFLAGS="-I/usr/local/include/ -I/usr/l0 码力 | 15 页 | 2.07 MB | 1 年前3
Rust并行编译的挑战与突破Rust并行编译的挑战与突破 李原 2022年5月28日 • 相关浅谈 • Rust并行编译的挑战与突破 • 从并行编译到并行程序设计 • Rust社区与并行编译 目录 相关浅谈 Rust编译速度之殇 编译器设计造成编译速度缓慢 · 单态化 · 借用检查 · 宏展开 · MIR优化 ... Rust规模编译速度慢于C++ Rust编译速度之殇 提升编译效率成为近年社区重点工作 提升编译效率成为近年社区重点工作 并行编译或成下一代编译效率突破利器 2017-2021,Rust编译速度已提升一倍以上 Rust社区编译器性能工作组 Rust编译器并行化 Cargo多crate并行 二进制生成并行 更多更好的并行化? Rust编译器架构 语法树生成 宏展开 命名解析 泛型解析 类型检查 借用检查 单态化 二进制生成 增量编译系统 底层数据 结构 Rust语言编译器结构总览 考虑内部编译流程并行化 考虑内部编译流程并行化 Rust并行并发 编译时线程安全检查 一些常见线程安全数据结构 常用Rust并行并发库 Rust并行并发 增加程序复杂度 线程安全数据结构造成效率损失 Mutex与RwLock rustc profileing 数据 · 代码复杂度及健壮性 · benchmark资源限制 · profileing成本 ... 收益 > 代价? Rust并行编译的挑战与突破0 码力 | 25 页 | 4.60 MB | 1 年前3
Greenplum分布式事务和两阶段提交协议https://cn.greenplum.org 博文 资料 文档 项目 全新的问答论坛 分布式事务和 两阶段提交协议 6 ● 事务实现原理和Write Ahead Logging(WAL) ● 分布式事务和两阶段提交的原理 ● Greenplum两阶段提交协议的实现 ● Greenplum两阶段提交协议的优化 Outline 7 事务的属性:ACID 属性 含义 数据库系统的实现 Atomic Atomic 原子性 事务中的操作要么全部正确执行,要么完全不 执行。 Write Ahead Logging,分布式事务:两阶段提交协议 Consistency 一致性 数据库系统必须保证事务的执行使得数据库 从一个一致性状态转移到另一个一致性状态。 (满足完整性约束) 实现对A、I、D三个属性的支持 Isolation 隔离性 多个事务并发地执行,对每个事务来说,它并 不会感知系统中有其他事务在同时执行。 不会感知系统中有其他事务在同时执行。 多版本并发控制Multi-Version Concurrency Control、 两阶段加锁(Two Phase Locking, 2PL)、乐观并发控制 (OCC) Durability 持久性 一个事务在提交之后,该事务对数据库的改变 是持久的。 Write Ahead Logging + 存储管理 Jim Gray于1981年VLDB描述了事务的原子性、0 码力 | 42 页 | 2.12 MB | 1 年前3
KCL: Rust 在编译器领域的实践与探索第三届中国Rust开发者大会 KCL: Rust 在编译器领域的实践与探索 张正 蚂蚁集团 Agenda 01 KusionStack 与 KCL 02 用 Rust 重写 KCL 03 Rust 重写后的收益 04 更多的探索 01 KusionStack 与 KCL KusionStack是什么? KusionStack架构 KCL KusionStack 是什么? Language Server KCL Compiler KCL Package Manager 02 用 Rust 重写 KCL Python 代码翻译 栈式虚拟机 Rust 编译器 KCL 编译器架构升级 Source Code AST LLVM IR Native/WASM Source Code AST Bit code VM Source Code Python IDE:用户体验提升 源于 Rust 强大的编译检查和错误 处理方式, 更少的 Bug 稳定性提升 端到端编译执行性能提升了 66% 66 % 20 & 40 前端解析器性能提升 20倍 中端语义分析器性能提升40倍 稳定性和性能的巨大提升 50 % 语言编译器编译过程平均内存使用 量变为原来 Python 版本的一半 01 02 03 04 Case1: 单文件编译 > https://github0 码力 | 25 页 | 3.50 MB | 1 年前3
通过SSA的解释执行窥探Golang编译之一角通过SSA的解释执行窥探Golang编译之一角 丁尔男 武汉航天远景 产品总监 凹语言 联合发起人 PLOC 联合发起人 目 录 Golang 编译流程简介 01 SSA 解释执行 02 基于 SSA 的应用 03 Golang 编译流程简介 源代码 抽象语法树 抽象语法树 (带语义信息) 静态单赋值 目标代码 Golang 编译流程简介 源代码 抽象语法树 抽象语法树 Golang 编译流程简介 源代码 抽象语法树 抽象语法树 (带语义信息) 静态单赋值 目标代码 1 + 2 * 3 *ast.BinaryExpr (+) *ast.BasicLit 1 : INT *ast.BinaryExpr (*) *ast.BasicLit 2 : INT * ast.BasicLit 3 : INT Golang 编译流程简介 01-AST Golang 编译流程简介 源代码 抽象语法树 抽象语法树 (带语义信息) 静态单赋值 目标代码 语义分析,涉及的包: • go/types 功能: • 类型检查和推导,如: v := "a" + 1 • 确定标识符的引用关系,如: var g = 42 func main() { g := "Hello GoCN!" println(g) } Golang 编译流程简介0 码力 | 30 页 | 1.50 MB | 1 年前3
2019-2021 美团技术年货 前端篇FlutterWeb 性能优化探索与实践 36 设计稿(UI 视图)自动生成代码方案的探索 56 美团外卖终端容器无关化研发框架 74 一款可以让大型 iOS 工程编译速度提升 50% 的工具 96 从预编译的角度理解 Swift 与 Objective-C 及混编机制 108 美团民宿跨端复用框架设计与实践 165 美团跨端一体化富文本管理技术实践 186 前端 | 2020 Choreographer 以外,大多数逻辑几乎 都由 C++ 和 Java 的基础 SDK 实现,可以直接在鸿蒙上复用,问题是鸿蒙目前的 API 文档中尚没有开放类似 Choreographer 的能力。所以现阶段我们可以借用鸿蒙 提供的类似 iOS Grand Central Dispatch 的线程 API,模拟出 VSync 的信号触发 与回调: @Override public void asyncWaitForVsync(long Web 探索跨端(App\PC\H5)解决方案,真正实 现“Write Once & Run AnyWhere”。当然,面临挑战也是巨大的,主要体现在 Flutter 和 MTFlutter 现阶段对 Web 支持还不是很充足。 2.1 Flutter Web 现状 Google 官方目前对 Flutter Web 的工作主要还集中在 dart:ui(Web)的对齐,工程 化和性能相关的事项做的还比较少,例如:0 码力 | 738 页 | 50.29 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a目录 1 目录 第0章:关于《Go语言101》 - 为什么写这本书 第1章:致谢 第2章:Go语言简介 - 为什么Go语言值得学习 第3章:Go官方工具链 - 如何编译和运行Go程序 Go编程入门 第4章:程序源代码基本元素介绍 第5章:关键字和标识符 第6章:基本类型和它们的字面量表示 第7章:常量和变量 - 顺便介绍了类型不确定值和类型推断 第8章:运算操作符 - 顺便介绍了更多的类型推断规则 reflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第31章:详解panic/recover原理 - 也解释了什么是“函数退出阶段” 第32章:代码块和标识符作用域 目录 2 第33章:表达式估值顺序规则 第34章:值复制成本 第35章:边界检查消除 并发编程 第36章:并发同步概述 第37章:通道用例大全 第38章:如何优雅地关闭通道 略微反直觉,甚至自相矛盾。 Go 语法和语义设计中有很多折衷和权衡。一个Go程序员需要相当的Go编程经验和感悟 才能理解这些权衡。 Go提供了几种基本但非必需的类型,比如切片,接口和通道。 Go编译器和运行时在 实现这些类型的时候,进行了必要的封装。 一方面,这些封装为Go编程带来了许多 便利,使我们不用从头实现这些类型。 但另一方面,这些封装隐藏了这些类型的内 部结构, 从而对我们更深入地理解这些类型的值的行为带来了一些障碍。0 码力 | 591 页 | 21.40 MB | 1 年前3
2022年美团技术年货 合辑介绍图 于是,我们基于硬件感知神经网络设计的思想,对 Backbone 和 Neck 进行了重新 设计和优化。该思想基于硬件的特性、推理框架 / 编译框架的特点,以硬件和编译友 好的结构作为设计原则,在网络构建时,综合考虑硬件计算能力、内存带宽、编译 优化特性、网络表征能力等,进而获得又快又好的网络结构。对上述重新设计的两 个检测部件,我们在 YOLOv6 中分别称为 EfficientRep 所示)。通过融合成 的 3x3 卷积结构,可以有效利用计算密集型硬件计算能力(比如 GPU),同时也可 获得 GPU/CPU 上已经高度优化的 NVIDIA cuDNN 和 Intel MKL 编译框架的 帮助。 算法 < 5 实验表明,通过上述策略,YOLOv6 减少了在硬件上的延时,并显著提升了算法的 精度,让检测网络更快更强。以 nano 尺寸模型为例,对比 YOLOv5-nano Training, QAT)两个方面进行分析,探索出了一 条切实可行的量化方案。 YOLOv6 采用了多分支的重参数化结构 [2](如图 1A 所示),通过在网络结构层面加 入人工先验可以在训练阶段让模型更好收敛。在推理阶段,多分支可以等价合并为单 路,从而提升运行速度。但现有的训练后量化方法,不能很好应对多分支结构带来的 剧烈变动的数值范围,导致量化后产生严重的精度损失 [3]。另外,如何针对多分支结0 码力 | 1356 页 | 45.90 MB | 1 年前3
RISC-V 开放架构设计之道 1.0.0RISC-V 架构有了更深 入的理解,同时也对指令集架构在整个计算机系统中的重要性有了更深刻的认识。书 中对不同指令集架构在成本、简洁性、性能、架构与实现的分离、预留编码空间、代 码量、是否易于编程/编译/链接等各方面的对比分析,包括一些有代表性的具体程序 示例对比,都深刻地阐释了 RISC-V 指令系统架构设计的先进性。 对于计算机专业和电子工程专业师生及计算机系统架构师和处理器设计者来说, 向高校师生和从业人士推荐本书 在计算机专业本科教学中,指令集是一个较为抽象的概念。传统的课程设置针对 计算机系统抽象层横向切分,每门课程围绕一个抽象层开展教学,包括数字逻辑电路、 计算机组成原理、汇编程序设计、操作系统、编译原理等。各课程间虽然分工明确, 但缺少联系,学生对计算机系统难以形成完整的认识。例如,汇编程序设计课程围绕 指令集开展教学,但主要介绍指令的格式和功能,以及汇编程序的阅读和设计,未与 计算机系 指令集的设计者,同时也 是资深的计算机架构师,RISC-V 指令集的优秀设计体现了他们对整个计算机系统的 深刻理解,包括程序、编译、链接、操作系统、微结构、电路等多个方面。书中首先 提出一款指令集的 7 个评价指标,包括成本、简洁、性能、架构和实现分离、提升空 间、代码大小、易于编程/编译/链接,然后围绕这 7 个评价指标从全系统角度向读者 介绍 RISC-V 的精巧设计和众多的取舍考量。例如,RISC-V0 码力 | 223 页 | 15.31 MB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东. . . . 65 6.3.3 内存优化的小示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.3.4 对象其他生命周期阶段内存管理 . . . . . . . . . . . . . . . . . . . 67 6.4 课后习题 . . . . . . . . . . . . . . . . . . . . . . 1.2 Java 技术栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 Java 程序编译运行过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1 Java 运算符 . . . . . . . . . . 语言的版本迭代历程如图1.1所示。 1.1.2 Java 技术的特点 Java 具备以下技术特点: 面向对象 Java 是一种以对象为中心,以消息为驱动的面向对象的编程语言。 平台无关性 分为源代码级(需重新编译源代码,如 C/C++)和目标代码级 (Java) 平台 无关。 分布式 可支持分布式技术及平台开发。 可靠性 不支持直接操作指针,避免了对内存的非法访问;自动单元回收功能防止内存 丢失等动0 码力 | 330 页 | 6.54 MB | 1 年前3
共 714 条
- 1
- 2
- 3
- 4
- 5
- 6
- 72













