~/talk

Optimising a small real-world C++ application

Talkat NDC TechTown 2018 · 2018-09-27..09-30· [web-performance]
links:none on file
slides:none on file

Converts fixed-width EBCDIC/packed-BCD COBOL files to pipe-separated CSV using a JSON field spec and iterative changes that double and redouble speed: initial C++ prototype reads 191 MB in ~10 s, replaces heavy std::string work with enums and C-style buffers, eliminates pointless BCD->float->string roundtrips, switches to memory-mapped input via Boost mmap, inspects hotspots with valgrind/cachegrind and perf and finally unrolls loops to reach about 220 MB/s single-threaded.

AI-written summary · about

  1. 0:00Introduction to optimization
  2. 1:20Understanding the problem
  3. 3:24Performance approach strategy
  4. 7:36Tools for performance analysis
  5. 11:04Analyzing input data structure
  6. 15:36First code version implementation
  7. 20:19Profiling the initial version
  8. 24:30Deep dive with cachegrind
  9. 30:14Optimizing string processing
  10. 34:07Refining decimal and I/O logic
  11. 37:27Advanced code refactoring
  12. 45:19Final optimizations and conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.