Remote Execution Caching Compiler (RECC)
Caching Compiler (RECC) CppCon 2024 September 19, 2024 Shivam Bairoliya Software Engineer© 2024 Bloomberg Finance L.P. All rights reserved. What is RECC? ● Remote Execution Caching Compiler (RECC) ○ Open source build tool that wraps compiler commands and optionally forwards them to a remote build execution service ○ Encompasses the capabilities of both ccache and distcc ○ Supports remote linking linking and caching ● Designed to share caches across diverse toolchains ○ Works with many compiler toolchains (GCC, Clang, Solaris CC) ○ Supports multiple operating systems (Linux, macOS, Solaris)0 码力 | 6 页 | 2.03 MB | 5 月前32.4 Go 1.4 runtime
Go 1.4 runtime Gopher China 2015 1. Memory Allocator 2. Garbage Collector 3. Goroutine Scheduler 1. Memory Allocator 内存分配器 base on tcmalloc. 基于成熟方案,性能优秀。随着版本升级, 针对性改进,以期与垃圾回收器更好协作。 核心:自主管理,缓存复用,无锁分配。 阈值触发,并行标记,并发清理。 定期强制回收,释放物理内存。 版本升级,垃圾回收效率总是核心问题。 gogc. 阈值检查,或强制回收。 malloc next_gc 0 gogc runtime.gc() stop start mark sweep stop start mark sweep 0 2 2 1 forcegc 2m 1 mark. 暂停用户逻辑,并行标记。 scheduler thread processor goroutine max. 系统限制,允许调整。 runtime.GOMAXPROCS 调整 P 数量,会导致 G 任务队列重新分布。 M G P scheduler max = 10000 max = 256 runtime/debug.SetMaxThreads 超出限制,会导致进程崩溃。 newproc. 创建新并发任务。0 码力 | 29 页 | 608.57 KB | 1 年前3Top 5 improvements to Debugging Go Code in VS Code
Top 5 improvements to Debugging Go Code in VS Code in the last year Ramya Rao Software Engineer, Microsoft Maintainer of the Go plugin to VS Code Add/remove breakpoints when in the middle of about remote? Configurable Stacktrace depth Improvements to the Variables pane Show pointer address An interesting year… • All 5 of these improvements were community contributions • About 60 different0 码力 | 9 页 | 153.73 KB | 1 年前3Learning by Contributing to Rust Compiler - 陈于康
第三届中国 Rust 开发者大会 Learning by Contributing to Rust Compiler Yukang github.com/chenyukang Engineer @ Cryptape Leveling Up in Rust • 2011 ~ 2014 EDA startup C/C++ • 2014 ~ 2020 DJI Infra tools, code refactor, algorithms improvements Some PR stories • Rust cares about error messages • We are building a sufficiently empathetic compiler • It’s a trade-off Diagnostic is an art art Simple diagnostic is a good start Compiler is a teacher/friend [# 100502 Avoid infinite loop in function arguments checking] A trivial fix may require a lot of time ? Fix the bug of next_point0 码力 | 23 页 | 3.28 MB | 1 年前3Rust 异步 Runtime 的兼容层 - 施继成
Rust 异步 Runtime 的兼容层 施继成 @ DatenLord Introduce what’s rust async runtime # Rust async runtime Analyze the reason of runtime isolation # Async runtime binding # Compatible layer 1 Create a wheel 2 3 # Rust async runtime 1 Light-weight task • Language and compiler define tasks • How to run it? • When to run it? • How does it deal with the I/O? Rust async runtime Runtime responsibilities it’s multi-thread model Rust async runtime Available Runtimes • Tokio • Async-std • Smol • Monoio Rust async runtime # Async runtime binding 2 Which runtime to choose ? • More adopters • Rich0 码力 | 22 页 | 957.41 KB | 1 年前3Designing an ultra low-overhead multithreading runtime for Nim
Designing an ultra low-overhead multithreading runtime for Nim Mamy Ratsimbazafy mamy@numforge.co Weave https://github.com/mratsim/weave Hello! I am Mamy Ratsimbazafy During the day blockchain/Ethereum multithreading: definitions and use-cases ◇ Parallel APIs ◇ Sources of overhead and runtime design ◇ Minimum viable runtime plan in a weekend 4 Understanding the design space Concurrency vs parallelism hardware threads The same distinctions can be done at a multithreaded language or multithreading runtime level. The problem 8 How to schedule M tasks on N hardware threads? Latency vs Throughput0 码力 | 37 页 | 556.64 KB | 1 年前32.1.4 PingCAP Go runtime related problems in TiDB production environment
Go runtime related problems in TiDB production environment About me ● Arthur Mao(毛康力), Senior Engineer@PingCAP ● TiDB core developer (top3 contributor) ● GitBook about golang internals (@tiancaiamao) IO is ready => goroutine wake up == 4.3ms ○ Sometime even 10ms+ latency here! ○ The time spend on runtime schedule is not negligible ● When CPU is overload, which goroutine should be given priority? Analysis longer to be scheduled ● The runtime scheduling does not consider priority ● CPU dense workload could affect IO latency Conclusion Part II - Memory control ● Go Runtime ○ Allocated from OS (mmaped)0 码力 | 56 页 | 50.15 MB | 5 月前3Testing Compile-time Constructs Within a Runtime Unit Testing Framework
company. Ⓡ © 2021 Apex.AI, Inc. Igor Bogoslavskyi Testing the compilability of the code at runtime© 2021 Apex.AI, Inc. Errors have a high cost, so rigorous testing is a must We use increasingly test_halving.cpp image: Flaticon.com Compiler image: Flaticon.com Test binary GoogleTest ✅ flags© 2021 Apex.AI, Inc. Proposed testing pipeline image: Flaticon.com Compiler image: Flaticon.com Test binary does image: Flaticon.com Test binary GoogleTest StaticTest Fixture ✅ image: Flaticon.com Compiler image: Flaticon.com test_halving.cpp flags image: Flaticon.com test_compile_1.cpp image: Flaticon0 码力 | 50 页 | 1.37 MB | 5 月前3Nim - the first high performance language with full support for hot codereloading at runtime
with full support for hot code- language with full support for hot code- reloading at runtime reloading at runtime by Viktor Kirilov 1 Me, myself and I Me, myself and I my name is Viktor Kirilov - collected (can do manual memory management too) expressive - some of the most powerful metaprogramming compiler has an interpreter inside compiles to: C/C++/ObjC/Javascript non-idiomatic - not for reading but topic :| generics templates (meta-programming^2) macros (meta-programming^3) - evaluated in the compiler by the NimVM concepts discriminated unions strong typedefs (distinct type) - can has $ currency0 码力 | 63 页 | 2.91 MB | 1 年前3Tracing in TiDB 浅谈全链路监控: 从应用到数据库到 Runtime
浅谈全链路监控: 从应用到数据库到 Runtime 黄东旭, Co-founder & CTO, PingCAP 关于我 黄东旭,联合创始人 & CTO @ PingCAP 做分布式数据库的程序员 ● 现在能写代码的时间是奢侈品 TiDB 的亲爹之一兼首席客服和新功能的第一个用户 ● 冤有头债有主,SQL 慢了来找我。。。 偶尔玩玩音乐 ● 摇滚乐->实验音乐 Go 的粉丝!!!! tool trace go tool trace ● 优点:好用,好看(UI) ● 缺点:性能损耗太大,不能一直开着 Trace in Go runtime ● go tool trace 的原理是? Trace 会 Go Runtime 的代码中打桩收集 CPU time,在 Goroutine 开始执行时记录 start_run_time, 在调度退出执行时记录 end_run_time,累加 goroutine 的 CPU time。 A little bit about Go runtime https://learnku.com/articles/41728 https://github.com/golang/go/blob/ma ster/src/runtime/trace.go hack runtime 的思路: follow the tracing event. PingCAP0 码力 | 39 页 | 3.43 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100
相关搜索词
RemoteExecutionCachingCompilerRECC2.4Go1.4runtimevscode陈于2023RustChinaConffinal继成异步兼容DesigninganultralowoverheadmultithreadingforNim2.1PingCAPrelatedproblemsinTiDBproductionenvironmentTestingCompiletimeConstructsWithinRuntimeUnitFrameworkthefirsthighperformancelanguagewithfullsupporthotcodereloadingatTracing浅谈链路监控应用数据据库数据库