Developing the Bloomberg Terminal -- Local performance & measurement techniques
summary
Bloomberg Terminal combines a C++ data layer with embedded Chromium/V8 to handle ~10–50k updates/sec across 100–200 windows; the pipeline uses a compact NaN-boxing datum variant, polymorphic allocators and a monotonic buffer resource to cut heap calls (example: an 80-char unique‑chars test drops from 86 mallocs and 13.3μs to one allocation then to zero by using a stack buffer). Tooling records and replays live push traffic for reproducing issues; WebAssembly prototypes run within ~40% of native and sometimes beat the native/JS boundary.
AI-written summary · about
chapters (51)
- 0:00Introduction
- 1:56Agenda
- 3:09Background
- 4:40What is it
- 5:41Server side
- 7:36Backend
- 8:26Lua scripting engine
- 9:05Application container processes
- 9:40Metrics subsystem
- 11:06Data layer
- 11:51Data layer components
- 12:53Combining data
- 13:41DataNow Inspector
- 14:21Datum
- 15:08Custom data types
- 16:21What is datum
- 17:08Can we do better
- 17:50Floatingpoint format
- 18:55String optimization
- 20:18Polymorphic allocators
- 23:15How does this work
- 24:48Custom allocator
- 26:41Monotonic Buffer
- 31:14Data Layer Performance
- 31:57Portable Columns
- 32:48Worksheet Expressions
- 33:54Coalescing
- 35:00Chromium
- 35:19UI
- 38:04Bindings
- 38:47Challenges
- 40:33Minimize GC
- 42:02Life cycle
- 42:33Application
- 43:04Disposal pattern
- 46:23Overall CPU load
- 46:40Bloomberg app
- 47:22Bloomberg 3D view
- 48:01Memory usage
- 49:10Cake view
- 49:40Live memory usage
- 50:06Measuring responsiveness
- 51:22Instant message system
- 51:36JavaScript levels
- 52:59UI Timing
- 56:38Playable
- 57:00Free integration testing
- 57:29WebAssembly
- 58:30What is WebAssembly
- 59:13C toolchain
- 59:46How do we hook up to it
related talks
53mBloomberg Becomes Browser
47mBenchmarking C++, From video games to algorithmic trading
33mReaching Ludicrous Speed
01h 29mWhen Nanoseconds Matter: Ultrafast Trading Systems in C++
30mPerformance Tuning Secrets
42mSelf-Awareness in C++ Code
39mMicro Benchmarks
17mVisualising Front-End Performance Bottlenecks
