Boosting Software Efficiency : A Case Study of 100% Performance Improvement in ...
summary
An embedded Linux unit with 32 MB RAM and C++/Qt codebase goes from frequent unexplained resets and data loss at ~5,000 meters to zero resets and support for 10,000 endpoints by measuring allocations, overloaded new/delete to profile memory, and a simple internal load simulator that reproduces crashes at 6,000+ meters. Fixes include batching large JSON payloads, moving volatile work to a nonvolatile queue, reinitializing UART instead of full resets, and 24/7 automated tests and monitoring.
AI-written summary · about
chapters (16)
- 0:00Legacy system challenges
- 3:01Smart metering architecture
- 6:36Goals for stability and performance
- 9:09Memory leaks and fragmentation
- 12:43Memory profiler tools
- 14:50Load simulator for testing
- 19:12Unexplained crashes in deployments
- 21:46Optimizing message memory
- 25:46Logging after system resets
- 28:35Preventing data loss
- 32:31Silent meter detection failures
- 36:27Proactive monitoring systems
- 42:43Automating testing pipelines
- 46:18Results and improvements
- 47:01Lessons and best practices
- 48:26Q&A
related talks
40mInspecting and Optimizing Memory Usage in Linux
24mPython Untethered: Building Robust Embedded Systems
26mTuning Real-Time Linux for ARM SoCs
11mBoost SoC Debug with Smart Monitors and Embedded Software
33mBoot time optimization for embedded devices
13mChallenges in High Performance Robotics Systems
38mThe Internet of Things and Life Beyond Linux
27mSet Yourself up for Success — Lessons Learned from Building 100+ Devices with C++/Qt/QML
