Drastically Reducing Out-of-Memory Errors in Apache Spark at Pinterest -- Listen Share Felix Loesing | Software Engineer In 2025, we set out to drastically reduce out-of-memory errors (OOMs) and cut resource usage in our Spark applications by automatically identifying tasks with…
Nayef Ghattas When Go 1.24 was released in early 2025, we were eager to roll it out across our services. The headline feature—the new Swiss Tables map implementation—promised reduced CPU and memory overhead. Our story begins while the new version was being rolled out internally.…
Discord is transitioning its Windows desktop application from a 32-bit to a 64-bit architecture to improve performance and long-term stability. While the 32-bit version originally allowed for universal compatibility across diverse hardware with a single build, the growing demands of the application frequently push against 32-bit memory limits. By migrating to 64-bit, Discord ensures it can leverage modern hardware more effectively and remain compatible with the evolving ecosystem of its underlying software libraries.
### Initial Strategy and Compatibility
* Discord originally launched as a web app in 2015 before moving to the desktop using the Electron web wrapper.
* The decision to build a 32-bit executable for Windows was based on portability, as it allowed the app to run on both 32-bit and 64-bit processors through Microsoft's backwards compatibility layers.
* Using a single 32-bit version simplified development during the application’s early stages while ensuring it worked on the widest possible range of machines.
### Memory Addressing Challenges
* While 32-bit applications generally use less memory than their 64-bit counterparts, they are subject to a hard restriction on total memory usage.
* Even when running on a 64-bit machine, Discord has encountered these architectural limits, leading to performance errors and application crashes.
* Moving to a 64-bit architecture is the industry-standard solution for overcoming these memory bottlenecks and providing a more stable environment for resource-intensive features like the In-Game Overlay.
### Ecosystem and Future-Proofing
* Discord is built on various core libraries, including Electron and WebRTC, which have transitioned to 64-bit as their default architecture.
* As 64-bit becomes the global standard, 32-bit versions of these libraries receive fewer refinements, bug fixes, and security updates.
* Staying on 32-bit would expose users to potential inefficiencies and unaddressed bugs as the community of developers maintaining 32-bit dependencies continues to shrink.
Adopting 64-bit architecture allows Discord to align with modern development standards, ensuring the application remains resilient and performant as its foundational technologies continue to advance.