Live data from Hacker News

Windows Server 2025 Runs Better on ARM

jasoneckert.github.io

141–150 of 156 posts

Re: Windows Server 2025 Runs Better on ARM

#141

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.

According to CPU bench, the Neo CPU is about the same speed as a mid range intel laptop CPU from 4 years ago. Apple A18 Pro (Q1 2026): Multithread 11977, Single Thread 4043 Intel Core i5-1235U (Q1 2022): Multithread 12605, Single Thread 3084 -- On the high-end we got i9-13900KS at about 60k, M5 Max 18 scores about the same. But when you move on to server CPUs like Threadripper and EPYC things are about 3x faster. Let…

I look at those numbers and think that A18 pro is 25% faster as single thread is what matters for UX.

browserbench speedometer 3.0 on A18 pro - 33, Intel Core i5-1235U - 22

i9-13900KS gets about 33

M4 Pro - 44-50

Re: Windows Server 2025 Runs Better on ARM

#142
post #113
post #37

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". T…

This is the sort of extremely valuable hint that makes HN worthwhile. Does that global registry key require a reboot, or does it just take effect on executable launch?

It takes effect on executable launch.

Re: Windows Server 2025 Runs Better on ARM

#143
post #85

Earlier quoted context omitted.

It's a combinination of bit flags. The lowest bit controls whether segment heap is on or off. The 2nd lowest bit bit controls some additional optimizations that go along with it, something about multithreading. A value of 3 (both flags set) gives you identical behavior to what specifying SegmentHeap in your application manifest does. Using the application manifest approach is the right way to ship software that opts…

How often does software actually ship with the opt in for segment heap turned on though ? Anyway to globally turn it on when a blacklist or denylist or whatever in case something individual acts up ?

Not nearly often enough, because most veteran Windows deverlopers don't even know what segment heap is, or that they have a choice. VS code, for example, is still on NT Heap. It is heartbreaking how under-utilized and under-publicized segment heap is. Raymond Chen needs to make a public service announcement or something.

For the question of how to do "segment heap on globally, with a list of exceptions that are still on NT Heap", I believe the "Image File Execution Options" regkey takes precedence over the global one. And the IFEO one lets you explicitly opt out. If you read the whitepaper from Mark Yason's 2016 talk at black hat, they explain how to use these registry keys.

Re: Windows Server 2025 Runs Better on ARM

#144
post #85

Earlier quoted context omitted.

> 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 had previously seen this described as 0 vs non-zero. Since you have some inside experience :), anything special about 3 instead? What about 2? How would I find these value meanings out on my own (if that's even possible)? Thank…

It's a combinination of bit flags. The lowest bit controls whether segment heap is on or off. The 2nd lowest bit bit controls some additional optimizations that go along with it, something about multithreading. A value of 3 (both flags set) gives you identical behavior to what specifying SegmentHeap in your application manifest does. Using the application manifest approach is the right way to ship software that opts…

Much thanks, this is why I come to HN!

Re: Windows Server 2025 Runs Better on ARM

#145
While interesting the post is incredibly vague and jumps to conclusions that in my opinion other data can explan or at least requires further testing.

14th gen intel have "big" and "little" cores. Unless you specify to pin cores in the VM, if at any point the virtualization swaps cores then your X86 performance on Intel goes down the drain.

Also laptop perfomance is incredibly suspect. Not only does cooling, etc have huge effects, but Intel is clearly behind AMD since many years (14th gen is a refresh of an old architecture).

Laptop benchmark: https://www.phoronix.com/review/snapdragon-x1e-september

Server benchmarks: https://www.phoronix.com/review/ampereone-a192-32x/12 https://www.phoronix.com/review/google-axion-c4a/5

Based on server performance while ARM is making strides, AMD still has the performance crown.

Re: Windows Server 2025 Runs Better on ARM

#146
post #135

Earlier quoted context omitted.

Ahh, a Windows problem surfaces - so does a registry hack allegedly fixing the problem. That's basically the (sad) story of Windows today.

I don't see how this is a 'problem', but rather a tunable. And any decent OS has tunables. Would you rather not have this option?

I would rather have some meaningful progress on the Windows scheduler, for example.

Re: Windows Server 2025 Runs Better on ARM

#147

Earlier quoted context omitted.

According to CPU bench, the Neo CPU is about the same speed as a mid range intel laptop CPU from 4 years ago. Apple A18 Pro (Q1 2026): Multithread 11977, Single Thread 4043 Intel Core i5-1235U (Q1 2022): Multithread 12605, Single Thread 3084 -- On the high-end we got i9-13900KS at about 60k, M5 Max 18 scores about the same. But when you move on to server CPUs like Threadripper and EPYC things are about 3x faster. Let…

I look at those numbers and think that A18 pro is 25% faster as single thread is what matters for UX. browserbench speedometer 3.0 on A18 pro - 33, Intel Core i5-1235U - 22 i9-13900KS gets about 33 M4 Pro - 44-50

You can't compare raw CPU speed by measuring different browsers on different OSes :)

Try this:

https://www.cpubenchmark.net/compare/6693vs7115vs7229vs7232/...

Re: Windows Server 2025 Runs Better on ARM

#148

Earlier quoted context omitted.

I look at those numbers and think that A18 pro is 25% faster as single thread is what matters for UX. browserbench speedometer 3.0 on A18 pro - 33, Intel Core i5-1235U - 22 i9-13900KS gets about 33 M4 Pro - 44-50

You can't compare raw CPU speed by measuring different browsers on different OSes :) Try this: https://www.cpubenchmark.net/compare/6693vs7115vs7229vs7232/...

That is why I mentioned that the litmus test was to put the mobile processor on a real laptop. Not the synthetic benchmarks.

The laptop is in the hands of customers and they are happy for the performance they get.

Re: Windows Server 2025 Runs Better on ARM

#149

Earlier quoted context omitted.

I look at those numbers and think that A18 pro is 25% faster as single thread is what matters for UX. browserbench speedometer 3.0 on A18 pro - 33, Intel Core i5-1235U - 22 i9-13900KS gets about 33 M4 Pro - 44-50

You can't compare raw CPU speed by measuring different browsers on different OSes :) Try this: https://www.cpubenchmark.net/compare/6693vs7115vs7229vs7232/...

You can pick the same browsers i.e. brave or chrome.

Also, let's not forget about unified memory impact. Raw cpu benchmarks are only one side of the complex system.

Re: Windows Server 2025 Runs Better on ARM

#150
post #139

Earlier quoted context omitted.

Two issues. First, regarding application compatibility: the heap was already changed once prior to the segment heap. The Low Fragmentation Heap (LFH) was added in XP and made default in Vista, with applications no longer having to opt into it: https://learn.microsoft.com/en-us/windows/win32/memory/low-f... Second, the segment heap has different tradeoffs that make it not a guaranteed win to swap in, it trades off per…

It's complicated. It's not always a straightforward space vs time tradeoff. For chromium's allocation patterns, it sounds like segment heap was slower. But BinaryNinja reported the opposite! See https://github.com/Vector35/binaryninja-api/issues/2778 Side note on the Chromium topic: Google Chrome decided NT Heap is still best for their usage, but Microsoft Edge, which is also built on the Chromium, uses segment heap.…

> Segment heap is more strict and proactive about detecting problems and terminating

I definitely noted that in my tests. Under load, machines with flaky RAM have higher memory access violation rates compared to NT Heap.

Post reply on HN