Our performance optimization case with Lowkey was a fighting chance to explore a whole new professional area for Martians and to find instruments to link and accelerate an Electron app. With a good pay-off: Martians brought Lowkey’s app CPU usage from over 30% to less than 5%.
Ten years ago, we couldn’t imagine the stardom of letsplay videos, gaming streams, and everything esports. Founded by a Harvard Computer Science graduate, Jesse Zhang, and backed by Y Combinator and Soma, Lowkey caught up with the esports trend. The startup recently designed a desktop application to automatically capture and upload game recordings while playing—to share with friends and teammates. The entertaining game video now has educational and training qualities: esports teams can learn from their mistakes, take their skills to the next level, and study competitors’ strategies to let them bite the dust.
The indispensable aspect and the key success factor of every single video project is its ongoing performance optimization. Lowkey experienced some technical hiccups holding the team back. Since Martians had performance optimization projects for gaming startups before, the Lowkey team reached out to us to get things done.
Martians against hyperconsumption
The fundamental goal was to make one of the main application features—game screen recording—radically more high-performing and less resource-consuming: a 30 FPS video record required over 30% of CPU on a gamer’s PC. As users played a game with many competitors while recording, excessive CPU consumption that affected the game performance could cost a game. The Lowkey team estimated that not more than 5% of CPU usage for recording a Full HD video with 60 FPS would let a user to get the most out of the game and to record a high-quality video simultaneously.
Exploring Electron capabilities
The Lowkey Windows application used Electron’s open source desktopCapturer API for screen capturing and video recording functionality. We started with the detailed tuning of the recording process to improve its performance, digging into the recording settings like codecs, resolution, and frame rate. That helped a bit as we managed to increase the recording quality to 60 FPS with slightly less CPU usage. But it definitely wasn’t enough. Exploring the
desktopCapturer performance map revealed the upsetting conclusion—it was the capturing solution itself that generated the 30% CPU consumption. We had to look for something less “greedy.”
The main idea was to find a native Windows solution for screen recording while avoiding commercial ones. After some exploration, we landed on the OBS Studio project, the open source software for video recording and livestreaming, well-known in the esports and streaming communities.