2.1.5 Go语言编译器简介中国 上海 / 2020-11.21-22 Go语言编译器简介 ’ alt=‘OCR图片’/> 关于我 Contributors to golang/go · GitHub 给Go编译器提交过127个补丁,累计六万余行; 拥有Go官方git仓库提交权限; 全球贡献者排名长期处于前50名; 世界上90%的gopher都用过我写的代码; 编译器的重要性 只有1%的程序员懂汇编语言 汇编语言无法构建大型系统 汇编语言无法构建大型系统 操作系统内核也需要编译器才能运行起来 编译理论是图灵奖大户,仅次于计算复杂度理论 操作系统有后门,编译器的后门更致命 编译器的难题:任务爆炸 N种语言 * M种机器 = N*M 个任务 GOPHER CHINA 2020 中国 上海 / 2020-11.21-22 两个方案 $$ N \mathrm {种 语 言} + M \mathrm {种 机 器} = {个 任 务} $$ 其它语言 -> C -> 各个机器 各个语言 -> x86 -> 其它机器 GOPHER CHINA 2020 中国 上海 / 2020-11.21-22 通用(非专用)编译器的方案 AST = Abstract Syntax Tree抽象语法树 SSA = Single Static Assignment单静态赋值 IR = Intermediate Representation中间表示0 码力 | 36 页 | 1.63 MB | 1 月前3
C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化## AMD # 从汇编角度看编译器优化 by 彭于斌 (@archibate) 往期录播:https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码:https://github.com/parallel101/course  ## 高性能并行编程与优化 - 课程大纲 • 分为前半段和后半段,前半段主要介绍现代 C++,后半段主要介绍并行编程与优化。 1. 课程安排与开发环境搭建:cmake 与 git 入门 2. 现代 C++ 入门:常用 STL 容器,RAII 内存管理 3. 现代 C++ 进阶:模板元编程与函数式编程 4. 编译器如何自动优化:从汇编角度看 C++ 5. r11, ..., r15 - 其中 r8 到 r15 是 64 位 x86 新增的寄存器,给了汇编程序员更大的空间,降低了编译器处理寄存器翻车(register spill)的压力。 • 因此 64 位比 32 位机器相比,除了内存突破 4GB 限制外,也有一定性能优势。 # 8 位,16 位,32 位,64 位版本 al, ax, eax, rax r15b, r15w, r15d, r150 码力 | 108 页 | 9.47 MB | 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是什么 add1b5abffd9fb8525138fc88bca0/p9_2.jpg) ## 2 KCL 编译器架构升级 Python 代码翻译 Source Code Python code 栈式虚拟机 Source Code AST Bit code VM Rust 编译器 Source Code AST LLVM IR Native/WASM ## R ## 我们遇到了哪些问题? 8fc88bca0/p11_1.jpg) Pros 简单易上手 生态丰富 研发效率高 Cons 性能问题 无法满足自动化系统需求 稳定性问题 None 空对象,属性不存在等运行时错误 ## 为什么选择 Rust? ### 1. Go, Python, Rust 性能对比 ||CPython|RustPython|GPython|VM(go)|VM(Rust)|VM(Python)|LLVM0 码力 | 25 页 | 3.50 MB | 2 年前3
Oracle 和 MySQL 性能优化感悟f7196cc12c191/p1_1.jpg) QCon 全球软件开发大会 INTERNATIONAL SOFTWARE DEVELOPMENT CONFERENCE # 移动APP性能监测实践(iOS篇) 杨凯 # 国 0 码力 | 19 页 | 3.82 MB | 2 年前3
Go性能优化概览-曹春晖## GCN ## 业务性能优化概览  By Xargin 《Go 语言高级编程》合著者 Go contributor  { var m = make([]int, 10240) println(m[0]) } 用户声明的对象,被放在栈上还是堆上,是由编译器的 escape analysis 来决定的 ~/test git:master >>> go build -gcflags=-m"escape.go # command-line-arguments e(typ); m > maxPayload { _, c.outBuf = sliceForAppend(c.outBuf[:0], recordHeaderLen) 怎么样说服官方接受性能优化的 PR ## 内存占用过高-goroutine 数量太多导致内存占用高 这些内存的构成部分: 1. Goroutine 栈占用的内存(难优化,一条 tcp 连接至少对应一个 goroutine)0 码力 | 40 页 | 8.69 MB | 2 年前3
APISEVEN 和Kong EE 的性能评测# APISEVEN 和 Kong EE 的性能评测 -- GigaOm 高性能API管理测试 产品评估:API7和Kong企业版  1 - 摘要3 API76 图1. API7技术架构7 Kong 企业版7 3-GigaOm API负载测试设置9 开发,且能降低计算成本的开销。 更重要的是,许多组织也依赖API和微服务来实现高性能和可用性。在本文中,我们将“高性能”定义为每秒负载超过1000个交易且在整个API环境中最大延迟小于30毫秒。对公司而言,对性能的需求和对管理的需求一样,因为公司依靠API交易速率来跟上业务发展速度。 API管理解决方案不能成为性能瓶颈。许多公司都在寻找跨多个API端点的负载均衡和高交易量吞吐的解决方案。如果业务 每秒有1000个交易,一个月内就会有30亿次API调用。拥有大流量的公司通常每月API调用次数超过100亿次。因此,在选择API管理解决方案时,性能是一个关键因素。 在本文中,我们展示了使用2个全生命周期API管理平台完成的性能测试结果:API7 和 Kong 企业版 (Kong EE)。 在我们的单节点设置中,API7所有的压力测试结果都优于Kong EE。在每秒10,000个请求的情况下,990 码力 | 14 页 | 1.11 MB | 2 年前3
4 Python机器学习性能优化656c39f0055537d7f9feafcf0f03f1/p1_2.jpg) PYTHON 30th ## Python机器学习性能优化 以BERT服务为例,从1到1000 刘欣 ## 目录 1. 优化的哲学 2. 了解你的资源 3. 定位性能瓶颈 4. 动手优化  PYTHON 30th ## 3 定位性能瓶颈 Profile before Optimizing ## Python Profilers • time.time() • cProfile • line profiler • pyflame [Image](/uploads/documents/7/1/6/5/71656c39f0055537d7f9feafcf0f03f1/p23_2.jpg) ## wrk · 制造压力 · 挖掘整体性能瓶颈 - 实现非常精妙的压力工具,强烈安利(要不要写个py binding)  # 性能优化之无分支编程  Branchless Programming by uppercase,对于排序过的数据明显比乱序时高效。 - 无分支的方法对于乱序和有序的数据一样高效,性能吊打了传统的分支方法。 - 对于传统分支的做法,为什么排序了的更高效?既然无分支更高效,我要怎样优化才能让我的程序变成无分支的呢?那就来看本期性能优化专题课吧! ## 分支预测成败对性能的影响 ||Nanoseconds (ns)|Microseconds (μs)|Milliseconds 50% 到 60%、90%、99% 直到有一次,突然出现了一次分支 B 成功的案例,CPU 瞬间被打脸!不得不浪费 99% 已经填满 A 数据的流水线清空,重启整个流水线,这就是分支预测失败,他是导致分支性能低下的罪魁祸首。不过被打了一次脸的 CPU 还不敢相信,觉得这可能只是碰巧,下一次还是会执行分支 A 的吧,所以他只是把分支 A 的比例下调到 80%,直到第二次又被打脸,下调到最初的起点 50%……0 码力 | 47 页 | 8.45 MB | 2 年前3
对 Go 程序进行可靠的性能测试## 对 Go 程序进行可靠的性能测试 Changkun Ou https://changkun.de/s/gobench/ Go 夜读系列 | talkgo.org | Talk Go | 第 83 期 March 26, 2020  对代码块进行性能调优 ☐ 例2: Benchmark 的正确性分析 ☐ 例3: 其他的影响因素 • 假设检验的原理 • 局限与应对措施 • 总结 ## 教科书式的性能测试方法论 在《Software Testing: Principles and Practices》一书中归纳的性能测试方法论: 1. 搜集需求 2. 编写测试用例 3. 自动化性能测试用例 4. 执行性能测试用例 5. 分析性能测试结果 6. 性能调优 7. 性能基准测试(Performance Benchmarking) 8. 向客户推荐合适的配置 ## 可靠的测试环境 ## 什么是可靠的性能基准测试环境 ## 影响测试环境的软硬件因素 • 硬件: CPU 型号、温度、IO 等 软件:操作系统版本、当前系统调度的负载等 ## 指导思想 ● 单次测量结果毫无意义,统计意义下可对比的结果是关键0 码力 | 37 页 | 1.23 MB | 2 年前3
2.7 Golang与高性能DSP竞价系统## Golang与高性能DSP竞价系统  By @QLeelulu  舜飞科技 http包的HelloWorld性能测试  Via: http://www.cnblogs.com/QLeelulu/archive/2012/08/12/2635261.html ## 为什么选择Golang • 高性能、天生并发支持 • 性能敏感的模块可以直接使用C编写(当时是这么认为的) 性能敏感的模块可以直接使用C编写(当时是这么认为的) • 编译为本地机器码,部署方便 - 快速上手,学习成本低 • 标准库基本够用 • 带GC(当时不了解GC的性能问题) - 自带单元测试、性能测试、性能分析工具 • 开发效率不低 ## 备选 • C++ • NodeJS • Golang ✓ ## 竞价接口 ## HTTP竞价接口 • 直接用golang的http包 - 只使用gorilla/mux做简单的请求路由0 码力 | 51 页 | 5.09 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













