1.2.2 GoLLVM 编译探索GO CN GoLLVM编译探索 马春辉 字节跳动程序语言团队工程师 目录 团队与个人 01 GoLLVM 背景 02 GoLLVM现状 03 GoLLVM问题解决 04 阶段性的成果 05 未来与展望 06 第一部分 团队与个人 ’ alt=‘OCR图片’/> 团队与个人 字节跳动程序语言团队 go 编译器/Runtime/GC 优化 基础库、性能分析工具、java、python 基础库、性能分析工具、java、python 马春辉 十多年的编译器领域相关工作经验 先后就职于HP编译器组,IBM jvm组,华为虚拟机实验室,字节跳动程序语言团队 ’ alt=‘OCR图片’/> 第二部分 GoLLVM背景 ’ alt=‘OCR图片’/> GoLLVM背景 · 字节内有大量的go微服务 性能要求 在原生Go SDK上的一些传统编译优化收益超过几十万核 PSM CPU Latency GoLLVM背景 传统编译优化在go compiler上的实现 Inline 策略调整 栈大小调整 Fast path inline Aggressive BCE ’ alt=‘OCR图片’/> GoLLVM背景 ·两条路 继续在原生Go SDK上开发 优化pass少 SSA比较简陋,缺少一些优化的基础设施 探索利用LLVM的优化能力:语言团队与STE-编译器组联合探索0 码力 | 25 页 | 3.99 MB | 1 月前3
Greenplum 编译安装和调试## Greenplum 编译安装和调试 本文先介绍如何从源代码编译安装Greenplum、初始化Greenplum集群。然后介绍SQL在Greenplum中的典型执行路径,最后介绍一些调试技巧。 源代码使用 Greenplum 开源社区最新源代码 6X_STABLE 分支: https://github.com/greenplum-db/gpdb,内核代码基于PostgreSQL 9. 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/0 码力 | 15 页 | 2.07 MB | 2 年前3
机器学习课程-温州大学-机器学习项目流程## 机器学习-机器学习项目流程 黄海广 副教授 2021年06月 ## 本章目录 01 机器学习项目流程概述 02 数据清洗 03 特征工程 04 数据建模 ### 1. 机器学习项目流程概述 ## 01 机器学习项目流程概述 02 数据清洗 03 特征工程 04 数据建模 ## 机器学习的一般步骤 历史数据 经验  ## 探索性数据分析(EDA) 探索性数据分析(EDA)是一个开放式流程,我们制作绘图并计算统计数据,以便探索我们的数据。 ·目的是找到异常,模式,趋势或关系。这些可能是有趣的(例如,找到两个变量之间的相关性),或者它们可用于建模决策,例如使用哪些特征。 ·简而言之0 码力 | 26 页 | 1.53 MB | 2 年前3
Rust并行编译的挑战与突破Rust并行编译的挑战与突破 李原 2022年5月28日 ## 目录 - 相关浅谈 - Rust并行编译的挑战与突破 - 从并行编译到并行程序设计 - Rust社区与并行编译  ## 相关浅谈 ## Rust编译速度之殇 ## ## 编译器设计造成编译速度缓慢  · 单态化 · 借用检查 · 宏展开 · MIR优化 Rust规模编译速度慢于C++  ## Rust编译速度之殇 ## 提升编译效率成为近年社区重点工作  2017-2021,Rust编译速度已提升一倍以上 编译器的方案 AST = Abstract Syntax Tree抽象语法树 SSA = Single Static Assignment单静态赋值 IR = Intermediate Representation中间表示0 码力 | 36 页 | 1.63 MB | 1 月前3
Java 应用与开发 - Java 语言基础与流程控制# Java 应用与开发 Java 语言基础与流程控制 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 August 28, 2018   ## 学习目标 ## Java 语言基础 1. 数据类型 2. 常量和变量 3. 关键字与标识符 4. 运算符与表达式 5. 从键盘输入数据 ## ▶ 流程控制 1. 语句和复合语句 2. 分支结构(选择结构) 3. 循环结构 4. 跳转语句 ## 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 integers = {1, 2, 3, 4}; for (int i : integers) { System.out.println(i); } ## 循环中的跳转 break 语句 使程序的流程从一个语句块(switch 或循环结构)内跳出。 continue 语句 终止当前这一轮(次)的循环,进入下一轮(次)循环。 return 语句 用来使程序从方法(函数)中返回,可返回一个值。 ##0 码力 | 37 页 | 685.82 KB | 2 年前3
KCL: Rust 在编译器领域的实践与探索## RUST CHINA CONF 2023 第三届中国Rust开发者大会 6.17-6.18 @Shanghai ## KCL: Rust 在编译器领域的实践与探索 张正 蚂蚁集团 ## 😍 01 KusionStack 与 KCL 02 用 Rust 重写 KCL 03 Rust 重写后的收益 04 更多的探索 ## 01 KusionStack 与 KCL ## KusionStack是什么 和云精简应用交付工作流,并提供开发友好的体验 基于 Platform as Code (平台服务即代码)理念,研发者可以用统一的组织和操作界面定义应用交付生命周期,充分利用Kubernetes和云的混合能力,通过端到端的交付工作流程,真正实现集中定义、随处交付。  ## KCL:面向应用研发者的配置策略专用高级编程语言,及其协议组,工具链及IDE插件 • Kusion:运维引擎、工具链、服务层,IDE 工作空间及社区技术集成套件 • Konfig:应用配置及基础模型共享仓库,及面向GitOps 工作流程(如GitHub Actions)的自定义CI 套件  丁尔男 武汉航天远景 产品总监 凹语言 联合发起人 PLOC 联合发起人 一切可编译为 WebAssembly 的,终将被编译为 WebAssembly。 2a # WebAssembly 机械工业出版社 China Machine Press ## 目录 Golang 编译流程简介 01 SSA 解释执行 02 基于 SSA 的应用 03 ## Golang 编译流程简介 源代码 抽象语法树 抽象语法树(带语义信息) 静态单赋值 目标代码 ## Golang 编译流程简介 源代码 语法解析,生成抽象语法树(Abstract Syntax Tree,AST),涉及的包: go/token 词法单元定义 go/scanner 词法扫描 抽象语法树(带语义信息) go/ast 抽象语法树定义 go/parser 语法解析 静态单赋值 目标代码 ## Golang 编译流程简介 源代码 抽象语法树 抽象语法树(带语义信息) 静态单赋值 目标代码 $ 1 + 2 * 3 $ *ast.BinaryExpr (+) $ ^{*} $ ast.BasicLit0 码力 | 30 页 | 1.50 MB | 2 年前3
《玩转webpack》第六章 原理篇: 通过源码掌握 webpack 打包原理webpack-cli 做的事情 引入 yargs,对命令行进行定制 分析命令行参数,对各个参数进行转换,组成编译配置项 引用webpack,根据配置项进行编译和构建 ## 从NON_ COMPILATION_CMD分析出不需要编译的命令 webpack-cli 处理不需要经过编译的命令 const { NON_ COMPILATION_ARGS } = require("./ut d")(NON_ COMPILATION_CMD, ...process.argv); } ## NON_compilation_args的内容 ## webpack-cli 提供的不需要编译的命令 const NON_compilation_args = [ "init", // 创建一份 webpack 配置文件 "migrate", 通用参数(帮助命令、版本信息等) ## webpack-cli 执行的结果 webpack-cli对配置文件和命令行参数进行转换最终生成配置选项参数 options 最终会根据配置参数实例化 webpack 对象,然后执行构建流程 ## Webpack 的本质 Webpack可以将其理解是一种基于事件流的编程范例,一系列的插件运行。 ## 先看一段代码 核心对象 Compiler 继承 Tapable class Compiler0 码力 | 39 页 | 3.66 MB | 2 年前3
C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化## AMD # 从汇编角度看编译器优化 by 彭于斌 (@archibate) 往期录播:https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码:https://github.com/parallel101/course 的压力。 • 因此 64 位比 32 位机器相比,除了内存突破 4GB 限制外,也有一定性能优势。 # 8 位,16 位,32 位,64 位版本 al0 码力 | 108 页 | 9.47 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













