Need help?
<- Back

Comments (77)

  • nubinetwork
    > Like many ARM systems, it doesn’t chase high boost clocks and instead delivers steady, sustained performanceMaybe not boost clocks, but every arm system I've used supports some form of frequency scaling and behaves the same as any x86 machine I've used in comparison. The only difference is how high can you go... /shrug
  • 1970-01-01
    >Across multiple runs of each test, the Snapdragon system produced consistent, repeatable timings nearly every time. On the Intel system, results varied significantly, occasionally beating the Snapdragon, but most of the time falling behind. The Snapdragon was the clear winner on each test overall.They blogged everything to generate the setup, including the hunch and test code but the anecdotal results are missing. It's a little suspect. How much faster is ARM??
  • kh9000
    Windows developer here. After reading this post, my gut instinct is that this is due to something called 'segment heap'.A bit of backstory: there are two, totally independent implementations behind the Windows heap allocation APIs (i.e. the implementation code behind RtlHeapAlloc and RtlHeapFree, which are called by malloc/free). The older of the two, developed uring the Dave Cutler era, is known as the "NT heap". The newer implementation, developed in the 2010s, is known as "segment heap". This is all documented online if anyone wants to read more. When development on segment heap was completed, it was known to be superior to the NT heap in many ways. In particular, it was more efficient in terms of memory footprint, due to lower fragmentation-related waste. Segment heap was smarter about reusing small allocations slots that were recently free'd. But, as ever, Windows was very serious about legacy app compat. Joel Spolsky calls this the 'Raymond Chen camp'. So, they didn't want to turn segment heap on universally. It was known that a small portion of legacy software would misbehave and do things like, rely on doing a bit of use-after-free as a treat. Or worse, it took dependencies on casting addresses to internal NT heap data structures. So, the decision at the time was to make segment heap the default for packaged executables. At that time, Windows Phone still existed, and Microsoft was pushing super hard on the Universal platform being the new, recommended way to make apps on Windows. So they thought we'd see a gradual transition from unpackaged executables to packaged, and thus, a gradual transition from NT heap to segment heap. The dream of UWP died, and the Windows framework landscape is more fragmented than ever. Most important software on Windows is still unpackaged, and most of it runs on x64.Why does this matter? Because segment heap is also enabled by default on arm. Same logic as the packaged vs unpackaged decision. Arm64 binaries on Windows are guaranteed not to be ancient, unmaintained legacy code. Arm64 windows devices have been a big success, and users widely report that they feel more responsive than x64 devices.A not insignificant part of why Windows feels better on arm is because segment heap is enabled by default on arm.I'd be interested to see how this test turns out if you force segment heap on x64. You can do it on a per-executable basis via creating a DWORD value named FrontEndHeapDebugOptions under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<myExeName>.exe, and giving it a value of 8.You can turn it on globally for all processes by creating a DWORD value named "Enabled" under HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Segment Heap, and giving it a value of 3. I do this on my dev machine and have encountered zero problems. The memory footprint savings are pretty crazy. About 15% in my testing.
  • josephg
    What is the RAM and storage on each of these machines? Is it possible the Snapdragon has packaged RAM (with faster interconnects as a result), and the x86 machine is using DIMMs with longer traces? And what about storage? For that matter, what CPUs are you using?Its possible ARM is a better architecture. But a lot of benchmarks end up stressing one part of the system more than any other. And if thats the case, faster RAM or faster syscalls or faster SSD performance or something could be whats really driving this performance difference.
  • bfrog
    It all runs better with Linux, Linux isn’t wasting cycles spying on me.
  • gt0
    Am I missing something or is the article avoiding saying what Intel processor they are using?
  • whatever1
    I mean we were suspecting for some time that smartphone processors have reached parity with laptop class ones. MacBook Neo proved it.Not clear how both Amd and Intel not only lost the smartphone fight but also lost in their own field (aka servers, laptops, desktops)15 years ago if I told you that windows would be running better on ARM you would call me crazy.
  • cloudbonsai
    Reading the article, it seems to boil down to the following two observations:1. ARM64 is actually less "smart" than x64. While Intel's Core i9 tries to be clever by aggressive boosting and throttling, Snapdragon just delivers steady and consistent performance. This lack of variability makes it easier for the OS to schedule tasks.2. It is possible that the ARM build is more efficient than the x64 build, because Windows has less historical clutter on ARM than x64.So, has CPU throttling become too smart to the point it hurts?
  • stackskipton
    As former Windows person who still uses fair amount of Powershell on Linux, I was interested.However, reading the summary left me confused like you don't understand what's happening at Microsoft.> Hopefully Microsoft will spend more time in the future on their server product strategy and less on Copilot ;-)The future product strategy is clear, it's Linux for servers. .Net runs on Linux, generally with much better performance. Microsoft internally on Azure is using Linux a ton and Windows Server is legacy and hell, MSSQL is legacy. Sure, they will continue to sell it because if you want to give them thousands of dollars, they would be idiots to turn it down but it's no longer a focus.
  • doctorpangloss
    you upgraded a windows 2022 system to windows 2025, and you are comparing the upgraded machine, which will not have 2025 optimized defaults, including a lot of stuff that makes VMs work much better, to a new 2025 installation, right?
  • p_ing
    Typical approach on an HV server is to disable C States, set power management to high, etc preventing x86 from downclocking. Keeping the CPU from seesawing can have big improvements.But you’re not going to do that in a lab/personal machine, usually.
  • phwbikm
    Cant believe somebody is still using windows server? What’s the use case?