Why E cores make Apple silicon fast (eclecticlight.co)

215 points by ingve 11 hours ago

eviks 7 hours ago

> The fact that an idle Mac has over 2,000 threads running in over 600 processes is good news, and the more of those that are run on the E cores, the faster our apps will be

This doesn't make sense in a rather fundamental way - there is no way to design a real computer where doing some useless work is better than doing no work, just think about energy consumption and battery life since this is laptops. Or that's just resources your current app can't use

Besides, they aren't that well engineered, bugs exist and last and come back, etc, so even when on average the impact isn't big, you can get a few photo analysis indexing going haywire for awhile and get stuck

ahepp 4 hours ago

I think in the example the OP is making, the work is not useless. They're saying if you had a system doing the same work, with maybe 60 processes, you're better off splitting that into 600 processes and a couple thousand threads, since that will allow granular classification of tasks by their latency sensitivity

eviks 4 hours ago

But it is, he's talking about real systems with real processes in a generic way, not a singular hypothetical where suddenly all that work must be done, so you can also apply you general knowledge that some of those background processes aren't useful (but can't even be disabled due to system lockdown)

ua709 3 hours ago

locknitpicker 3 hours ago

locknitpicker 3 hours ago

> (...) where doing some useless work is better than doing no work (...)

This take expresses a fundamental misunderstanding of the whole problem domain. There is a workload comprised of hundreds of processes, some of which multithreaded, that need to be processed. That does not change nor go away. You have absolutely no suggestion that any of those hundreds of processes is "useless". What you will certainly have are processes that will be waiting for IO, but waiting for a request to return a response is not useless.

ua709 2 hours ago

In this case the “useless” work is the cost of moving and distributing the threads between different compute clusters. That cost is nonzero, and does needs to be factored in, but it’s also more than overwhelmed by the benefits gained from doing the move.

mathisfun123 4 hours ago

> This doesn't make sense in a rather fundamental way - there is no way to design a real compute

Hmm I guess the apple silicon laptops don't exist? Did I dream that I bought one year? Maybe I did - it has been a confusing year.

eviks 4 hours ago

You did dream, though not that you bought a laptop, but rather that you understood the comment.

mathisfun123 3 hours ago

m463 3 hours ago

I would say a good number of those processes/cores are something you don't want running. And you can't turn them off unless you can modify the boot partition to disable the launch configs.

sigh.

GeorgeOldfield 23 minutes ago

most of them are needed at one time or another.

also a mandatory: and yet the macbooks are faster and more battery efficient than any PC laptop with linux/windows

dgxyz 3 hours ago

Most of them don’t do anything at all until needed.

tyleo 10 hours ago

These processors are good all around. The P cores kick butt too.

I ran a performance test back in October comparing M4 laptops against high-end Windows desktops, and the results showed the M-series chips coming out on top.

https://www.tyleo.com/blog/compiler-performance-on-2025-devi...

murderfs 10 hours ago

This is likely more of a Windows filesystem benchmark than anything else: there are fundamental restrictions on how fast file access can be on Windows due to filesystem filter drivers. I would bet that if you tried again with Linux (or even in WSL2, as long as you stay in the WSL filesystem image), you'd see significantly improved results.

philistine 10 hours ago

Which still wouldn’t beat the Apple Silicon chips. Apple rules the roost.

Kuinox 9 hours ago

etrvic 9 hours ago

From your article it seems like you benchmark compile times. I am not an expert on the subject, but I don't see the point in comparing ARM compilation times with Intel. There are probably different tricks involved in compilation and the instructions set are not the same.

tom_ an hour ago

I've often been suspicious of this too, having noticed that building one of my projects on Apple Silicon is way quicker than I'd expect relative to x64, given relative test suite run times and relative PassMark numbers.

I don't know how to set up a proper cross compile setup on Apple Silicon, so I tried compiling the same code on 2 macOS systems and 1 Linux system, running the corresponding test suite, and getting some numbers. It's not exactly conclusive, and if I was doing this properly properly then I'd try a bit harder to make everything match up, but it does indeed look like using clang to build x64 code is more expensive - for whatever reason - than using it to build ARM code.

Systems, including clang version and single-core PassMark:

    M4 Max Mac Studio, clang-1700.6.3.2 (PassMark: 5000)
    x64 i7-5557U Macbook Pro, clang-1500.1.0.2.5 (PassMark: 2290)
    x64 AMD 2990WX Linux desktop, clang-20 (PassMark: 2431)
Single thread build times (in seconds). Code is a bunch of C++, plus some FOSS dependencies that are C, everything built with optimisation enabled:

    Mac Studio: 365
    x64 Macbook Pro: 1705
    x64 Linux: 1422
(Linux time excludes build times for some of the FOSS dependencies, which on Linux come prebuilt via the package manager.)

Single thread test suite times (in seconds), an approximate indication of relative single thread performance:

    Mac Studio: 120
    x64 Macbook Pro: 350
    x64 Linux: 309
Build time/test time makes it look like ARM clang is an outlier:

    Mac Studio: 3.04
    x64 Macbook Pro: 4.87
    x64 Linux: 4.60
(The Linux value is flattered here, as it excludes dependency build times, as above. The C dependencies don't add much when building in parallel, but, looking at the above numbers, I wonder if they'd add up to enough when built in series to make the x64 figures the same.)

wpm 5 hours ago

My M4 mini is probably the fastest computer/watt in my home. And it was the cheapest.

Not even a bad little gaming machine on the rare occasion

cubefox 9 hours ago

Here is a more recent comparison with Intel's new Panther Lake chips: https://www.tomsguide.com/computing/cpus/panther-lake-is-int...

dagmx 5 hours ago

Which still come out behind other than multi core, while using substantially more power.

Those panther lake comparisons are from the top end PTL to the base M series. If they were compared to their comparative SKUs they’d be even further behind.

cubefox 3 hours ago

sys_64738 9 hours ago

Are the Intel systems plugged in when running those tests? Usually when Apple machines do the tests then the difference between battery/plugged in is small if any.

roomey 9 hours ago

Genuine question, when people talk about apple silicon being fast, is the comparison to windows intel laptops, or Mac intel architecture?

Because, when running a Linux intel laptop, even with crowd strike and a LOT of corporate ware, there is no slowness.

When blogs talk about "fast" like this I always assumed it was for heavy lifting, such as video editing or AI stuff, not just day to day regular stuff.

I'm confused, is there a speed difference in day to day corporate work between new Macs and new Linux laptops?

Thank you

nerdsniper 9 hours ago

I use pretty much all platforms and architectures as my "daily drivers" - x64, Apple Silicon, and ARM Cortex, with various mixtures of Linux/Mac/Windows.

When Apple released Apple Silicon, it was a huge breath of fresh air - suddenly the web became snappy again! And the battery lasted forever! Software has bloated to slow down MacBooks again, RAM can often be a major limiting factor in performance, and battery life is more variable now.

Intel is finally catching up to Apple for the first time since 2020. Panther Lake is very competitive on everything except single-core performance (including battery life). Panther Lake CPU's arguably have better features as well - Intel QSV is great if you compile ffmpeg to use it for encoding, and it's easier to use local AI models with OpenVINO than it is to figure out how to use the Apple NPU's. Intel has better tools for sampling/tracing performance analysis, and you can actually see you're loading the iGPU (which is quite performant) and how much VRAM you're using. Last I looked, there was still no way to actually check if an AI model was running on Apple's CPU, GPU, or NPU. The iGPU's can also be configured to use varying amounts of system RAM - I'm not sure how that compares to Apple's unified memory for effective VRAM, and Apple has higher memory bandwidth/lower latency.

I'm not saying that Intel has matched Apple, but it's competitive in the latest generation.

Philip-J-Fry 9 hours ago

This was the same for me. M4 Pro is my first Macbook ever and it's actually incredible how much I prefer the daily driving experience versus my brand new 9800x3d/RTX 5080 desktop, or my work HP ZBook with 13th Gen intel i9. The battery lasts forever without ANY thought. On previous Windows laptops I had to keep an eye on the battery, or make sure it's in power saving mode, or make sure all the background processes aren't running or whatever. My Macbook just lasts forever.

My work laptop will literally struggle to last 2 hours doing any actual work. That involves running IDEs, compiling code, browsing the web, etc. I've done the same on my Macbook on a personal level and it barely makes a dent in the battery.

I feel like the battery performance is definitely down to the hardware. Apple Silicon is an incredible innovation. But the general responsiveness of the OS has to be down to Windows being god-awful. I don't understand how a top of the line desktop can still feel sluggish versus even an M1 Macbook. When I'm running intensive applications like games or compiling code on my desktop, it's rapid. But it never actual feels fast doing day to day things. I feel like that's half the problem. Windows just FEELS so slow all the time. There's no polish.

ufmace 3 hours ago

nerdsniper 8 hours ago

mschuster91 8 hours ago

smw 9 hours ago

Apple silicon is very fast per size/watt. The mind blowing thing is the macbook air that has weighs very little, doesn't have a fan, and feels competitive with top of the line desktop pcs.

eru 9 hours ago

Of course, it's only competitive for short bursts of serious CPU work. The thermal limits do kick in pretty quickly.

(I love my MacBook Air, but it does have its limits.)

wincy an hour ago

nerdsniper 9 hours ago

ahepp 4 hours ago

robertoandred 4 hours ago

drob518 9 hours ago

My M1 MacBook Air is honestly the best laptop I’ve ever owned. Still snappy and responsive years after release. Fantastic machine. But I’m starting to crave an M5 Air…

xandrius 8 hours ago

jsheard 9 hours ago

Apple chips are very good especially for their power envelope but let's not get ahead of ourselves, the only way a Macbook Air feels competitive with a top-of-the-line desktop is if you're not actually utilizing the full sustained power of the desktop. There's a reason why Apple sells much bigger Max/Ultra chips with active cooling.

freeone3000 9 hours ago

throwa356262 9 hours ago

First of all, Apple CPUs are not the fastest. In fact top 20 fastest CPUs right now is probably an AMD and Intel only affair.

Apples CPUs are most powerful efficient however, due to a bunch of design and manufacturing choices.

But to answer your question, yes Windows 11 with modern security crap feels 2-3 slower than vanilla Linux on the same hardware.

nerdsniper 9 hours ago

I do believe Apple are still the fastest single-core (M5, A19 Pro, and M3 Ultra leading), which still matters for a shocking amount of my workloads. But only the M5 has any noticeable gap vs Intel (~16%). Also the rankings are a bit gamed because AMD and Intel put out a LOT of SKU's that are nearly the same product, so whenever they're "winning" on a benchmark they take up a bunch of slots right next to eachother even though they're all basically the exact same chip.

Also, all the top nearly 50 multi-core benchmarks are taken up by Epyc and Xeon chips. For desktop/laptop chips that aren't Threadripper, Apple still leads with the M3 Ultra 32-core in multi-core passmark benchmark. The usual caveats of benchmarks not being representative of any actual workload still apply, of course.

And Apple does lag behind in multi-core benchmarks for laptop chips - The M3 Ultra is not offered in a laptop form-factor, but it does beat every AMD/Intel laptop chip as well in multicore benchmarks.

deaddodo 8 hours ago

throwa356262 8 hours ago

rahkiin 9 hours ago

My windows with corporate crap is sometimes 2000x slower than without corporate crap. And consistently 10x slower than an M3

indemnity 8 hours ago

PaulHoule 9 hours ago

leptons 4 hours ago

vachina 9 hours ago

My RHEL vnc feels snappier than the Windows 11 client it’s running on.

With maximum corporate spyware it consistently takes 1 second to get a visual feedback on Windows.

ajross 9 hours ago

> First of all, Apple CPUs are not the fastest.

The cores are. Nothing is beating a M4/M5 on single CPU performance, and per-cycle nothing is even particularly close.

At the whole-chip level, there are bigger devices from the x86 vendors which will pull ahead on parallel benchmarks. And Apple's unfortunate allergy to effective cooling techniques (like, "faster fans move more air") means that they tend to throttle on chip-scale loads[1].

But if you just want to Run One Thing really fast, which even today still correlates better to "machine feels fast" than parallel loads, Apple is the undisputed king.

[1] One of the reasons Geekbench 6, which controversially includes cooling pauses, looks so much better for Apple than version 5 did.

drob518 9 hours ago

gpderetta 9 hours ago

llm_nerd 8 hours ago

Nowhere in the submission or even the comment you replied to did anyone say "fastest". The incredibly weird knee-jerk defensiveness by some is bizarre.

It was a discussion about how the P cores are left ready to speedily respond to input via the E cores satisfying background needs, in this case talking specifically about Apple Silicon because that's the writer's interest. But of course loads of chips have P and E cores, for the same reason.

ksec 9 hours ago

>First of all, Apple CPUs are not the fastest. In fact top 20 fastest CPUs right now is probably an AMD and Intel only affair.

You are comparing 256 AMD Zen6c Core to What? M4 Max?

When people say CPU they meant CPU Core, And in terms of Raw Speed, Apple CPU holds the fastest single core CPU benchmarks.

throwa356262 9 hours ago

ahepp 4 hours ago

I think you're bringing up a great question here. If you ask a random person on the street "is your laptop fast", the answer probably has more to do with what software that person is running, than what hardware.

My Apple silicon laptop feels super fast because I just open the lid and it's running. That's not because the CPU ran instructions super fast, it's because I can just close the lid and the battery lasts forever.

rngfnby 9 hours ago

New Mac arm user here.

Replaced a good Windows machine (Ryzen 5? 32 Gb) and I have a late intel Mac and a Linux workstation (6 core Ryzen 5, 32 Gb).

Obviously the Mac is newer. But wow. It's faster even on things that CPU shouldn't matter, like going through a remote samba mount through our corporate VPN.

- Much faster than my intel Mac

- Faster than my Windows

- Haven't noticed any improvements over my Linux machines, but with my current job I no longer get to use them much for desktop (unfortunately).

Of course, while I love my Debian setup, boot up is long on my workstation; screensaver/sleep/wake up is a nightmare on my entertainment box (my fault, but common!). The Mac just sleeps/wakes up with no problems.

The Mac (smallest air) is also by far the best laptop Ive ever had from a mobility POV. Immediate start up, long battery, decent enough keyboard (but If rather sacrifice for a longer keypress)

bstar77 9 hours ago

Part of it is that the data pipelines in the Mac are far more efficient with its soldered memory and enhanced buses. You would have to use something like Halo Strix on the PC side see similar performance upticks at a somewhat affordable price bracket. Things like Samba/VPN mounting should not matter much (unless your mac network interface is significantly better), but you might see a general snappiness improvement. Heavy compute tasks will be a give and take with modern PC hardware, but Apple is still the king of efficiency.

I still use an M1 MB Air for work mostly docked... the machine is insane for what it can still do, it sips power and has a perfect stability track record for me. I also have a Halo Strix machine that is the first machine that I can run linux and feel like I'm getting a "mac like" experience with virtually no compromises.

irae 7 hours ago

I've used Linux as a daily driver for 6 months and I am now back to my M1 Max for the past month.

I didn't find any reply mentioning the easy of use, benefits and handy things the mac does and Linux won't. Spotlight, Photos app with all the face recognition and general image index, contact sync, etc. Takes ages to setup those on Linux and with macs everything just works with an Apple account. So I wonder if Linux had to do all this background stuff, if it would be able to run smoothly as Macs run this days.

For context: I was running Linux for 6 months for the first time in 10 years (which I was daily driving macs). My M1 Max still beats my full tower gaming PC, which I was using linux at. I've used Windows and Linux before, and Windows for gaming too. My Linux setup was very snappy without any corporate stuff. But my office was getting warm because of the PC. My M1 barely turn on the fans, even with large DB migrations and other heavy operation during software development.

cj 9 hours ago

For me it’s things like boot speed. How long does it take to restart the computer. To log out, and log back in with all my apps opening.

Mac on intel feels like it was about 2x slower at these basic functions. (I don’t have real data points)

Intel Mac had lag when opening apps. Silicon Mac is instant and always responsive.

No idea how that compares to Linux.

eru 9 hours ago

Well, completely rebooting is a lot slower on my Macs than on my Linux.

But I'm running a fairly slim Archlinux install without a desktop environment or anything like that. (It's just XMonad as a window manager.)

indemnity 8 hours ago

jghn 6 hours ago

> For me it’s things like boot speed

This is a metric I never really understood. how often are people booting? The only time I ever reboot a machine is if I have to. For instance the laptop I'm on right now has an uptime of just under 100 days.

n8cpdx 2 hours ago

maccard 5 hours ago

nerdsniper 9 hours ago

Windows can boot pretty fast these days, I'm always surprised by it. I run LTSC on mine though, so zero bloat. Both my Macs and Windows LTSC have quick boots nowadays, I'm not sure I could say which is faster, but it might be the Windows.

spockz 22 minutes ago

nottorp 9 hours ago

Hmm? Why do you restart your computer often enough to notice?

Even Windows (or at least my install that doesn't have any crap besides visual studio on it) can run for weeks these days...

maccard 5 hours ago

throwa356262 9 hours ago

Some of that can be attributed to faster IO.

Something else to consider: chromebook on arm boots significantly faster than dito intel. Yes, nowadays Mediateks latest cpus wipe the floor with intel N-whatever, but it has been like this since the early days when the Arm version was relatively underpowered.

Why? I have no idea.

ahepp 4 hours ago

bluedino 7 hours ago

Somehow my 2011 MacBook Pro was the fastest laptop I had ever used.

After I put an SSD in it, that is.

I wonder what my Apple silicon laptop is even doing sometimes.

lrem 8 hours ago

You can notice that memory bandwidth advantage even in workloads like photo editing and code compilation. That and the performance cores reserved for foreground compute, on top of the usual "Linux sucks at swap" (was it fixed? I haven't enabled swap on my Linux machines for ages by now), does make a day-to-day difference in my usage.

qoez 9 hours ago

I love apple and mainly use one for personal use, but apple users consistently overrate how fast their machines are. I used to see sentiment like "how will nvidia ever catch up with apples unified silicon approach" a few years ago. But if you just try nvidia vs apple and compare on a per dollar level, nvidia is so obviously the winner.

maccard 5 hours ago

For day to day use, my base spec M1 MacBook Pro is snappier than my i9 desktop with 128GB of ram and a 4090.

newsclues 9 hours ago

Power management with Mac’s is the big benefit, imo.

It’s all about the perf per watt.

testdelacc1 7 hours ago

I haven’t used a laptop other than a mac in 10 years. I remember being extremely frustrated with the Intel macs. What I hated most was getting into video meetings, which would make the Intel CPU sound like a 747 taxiing.

The switch from a top spec, new Intel Mac to a base model M1 Macbook Air was like a breath of fresh air. I still use that 5 year old laptop happily because it was such a leap forward in performance. I dont recall ever being happy with a 5 year old device.

dangus 8 hours ago

I think you should spend some time looking at actual laptop review coverage before asking questions like this.

There are dozens of outlets out there that run synthetic and real world benchmarks that answer these questions.

Apple’s chips are very strong on creative tasks like video transcoding, they have the best single core performance as well as strong multi-core performance. They also have top tier power efficiency, battery life, and quiet operation, which is a lot of what people look for when doing corporate tasks.

Depending on the chip model, the graphics performance is impressive for the power draw, but you can get better integrated graphics from Intel Panther Lake, and you can get better dedicated class graphics from Nvidia.

Some outlets like Just Josh tech on YouTube are good at demonstrating these differences.

jwilliams an hour ago

Although there is the consistent trap of tools that assign threads/workers based on the number of cores (e.g unit testing or bundling tools). This means the efficiency cores get dragged in and can absolutely tank the process.

This was particularly pronounced on the M1 due to the 50/50 split. We reduced the number of workers on our test suite based on the CPU type and it sped up considerably.

ricardobeat 9 hours ago

> The fact that an idle Mac has over 2,000 threads running in over 600 processes is good news

Not when one of those decides to wreck havoc - spotlight indexing issues slowly eating away your disk space, icloud sync spinning over and over and hanging any app that tries to read your Documents folder, Photos sync pegging all cores at 100%… it feels like things might be getting a little out of hand. How can anyone model/predict system behaviour with so many moving parts?

twoodfin 8 hours ago

My pet peeve with the modern macOS architecture & its 600 coordinating processes & Grand Central Dispatch work queues is debugability.

Fifteen years ago, if an application started spinning or mail stopped coming in, you could open up Console.app and have reasonable confidence the app in question would have logged an easy to tag error diagnostic. This was how the plague of mysterious DNS resolution issues got tied to the half-baked discoveryd so quickly.

Now, those 600 processes and 2000 threads are blasting thousands of log entries per second, with dozens of errors happening in unrecognizable daemons doing thrice-delegated work.

krackers 2 hours ago

>with dozens of errors happening in unrecognizable daemons doing thrice-delegated work.

It seems like a perfect example of Jevons paradox (or andy/bill law): unified logging makes logging rich and cheap and free, but that causes everyone to throw it everywhere willy nilly. It's so noisy in there that I'm not sure who the logs are for anymore, it's useless for the user of the computer and even as a developer it seems impossible to debug things just by passively watching logs unless you already know the precise filter predicate.

In fact they must realize it's hopeless because the new Console doesn't even give you a mechanism to read past logs (I have to download eclecticlight's Ulbow for that).

ninkendo 5 hours ago

> Now, those 600 processes and 2000 threads are blasting thousands of log entries per second, with dozens of errors happening in unrecognizable daemons doing thrice-delegated work.

This is the kind of thing that makes me want to grab Craig Federighi by the scruff and rub his nose in it. Every event that’s scrolling by here, an engineer thought was a bad enough scenario to log it at Error level. There should be zero of these on a standard customer install. How many of these are legitimate bugs? Do they even know? (Hahaha, of course they don’t.)

Something about the invisibility of background daemons makes them like flypaper for really stupid, face-palm level bugs. Because approximately zero customers look at the console errors and the crash files, they’re just sort of invisible and tolerated. Nobody seems to give a damn at Apple any more.

bool3max 3 hours ago

lrem 8 hours ago

It's slowly approaching what SRE has been dealing with for distributed systems... You just have to accept things won't be fully understood and whip out your statistical tooling, it's ok. And if they get the engineering right, you might still keep your low latency corner where only an understandable set of things are allowed.

emchammer 7 hours ago

If open source projects like Slackware Linux can keep it stable on zero budget with a zoo of components since before we knew what SRE was, then Apple can afford to have operating system specialists who know the whole system. It’s like they gave up and welded the jukebox closed because it was making enough money.

otterley 6 hours ago

kristianp an hour ago

I wonder if that explains my intermittent keyboard lockups on MacOS? The keyboard just failing to work for a few minutes. The keyboard, a logitec one with a dongle, never has problems under windows or linux. M1 mac mini, not upgraded to Tahoe yet.

hmokiguess 9 hours ago

for me it’s iMessage, it gets out of sync way too often and then it eats the CPU away

sgt 9 hours ago

Pretty heavy iMessage user here, but I can't say I experience any issues, and that's probably why your issue is not getting fixed - ie. nobody at Apple is able to reproduce it. Maybe you should gather some info about it and see if you can send a bug report?

dawnerd 8 hours ago

eptcyka 7 hours ago

jghn 6 hours ago

hmokiguess 9 hours ago

fragmede 9 hours ago

and if it paid off, that would almost be acceptable! But no. After spotlight has indexed my /Applications folder, when I hit command-spacebar and type "preview.app", it takes ~4 seconds on my M4 laptop to search the sqlite database for it and return that entry.

grumble

throw234232t3 8 hours ago

On pre-Tahoe macOS there is the “Applications” view (accessible e.g. from the dock). Since the only thing I would use Spotlight for is searching through applications to start, I changed the Cmd+Space keybind to launch the Applications view. The search is instant.

Spotlight, aside from failing to find applications also pollutes the search results with random files it found on the filesystem, some shortcuts to search the web and whatnot. Also, at the start of me using a Mac it repeatedly got into the state of not displaying any results whatsoever. Fixing that each time required running some arcane commands in the terminal. Something that people associate with Linux, but ironically I think now Linux requires less of that than Mac.

But in Tahoe they removed the Applications view, so my solution is gone now.

All in all, with Apple destroying macOS in each release, crippling DTrace with SIP, Liquid Glass, poor performance monitoring compared to what I can see with tools like perf on Linux, or Intel VTune on Windows, Metal slowly becoming the only GPU programming option, I think I’m going to be switching back to Linux.

saagarjha 8 hours ago

littlecranky67 8 hours ago

I have the same issue on my M4 Macbook Pro and I had it on my previous M2 Apple Mac Mini, on several macOS versions (pre-Tahoe). I suspect it has to do with the virtual filesystem layer, as I had used OneDrive for Mac and now Proton Drive. Whatever it is, it has been broken for years on several devices and OSes and I am pretty sure Apple doesn't care about it.

etrvic 9 hours ago

On my Intel mac searching with cmd+space for a file takes under a second. Maybe there is a problem on your end?

ricardobeat 9 hours ago

tambourine_man 9 hours ago

I may be a spotlight unicorn, but I’ve never seen this behavior people complain about. Spotlight has always been instant for me, since its introduction and I’ve never seen a regression.

It is completely useless on network mounts, however, where I resort to find/grep/rg

irae 7 hours ago

I've never had this issue. M1 Max. But I also disable some of the Spotlight indexes. Cmmd+Space has no files for me, when I know I am searching for a file I use Finder search instead.

steveBK123 8 hours ago

It feels like the 2000s era of “Mac software is better but you have to tolerate their hardware to enjoy it” has inverted in the last 5 years. Incredible hardware down to in-house silicon, but software that would have given Steve Jobs a stroke.

Firstly performance issues like wtf is going on with search. Then there seems to be a need to constantly futz with stable established apps UXes every annual OS update for the sake of change. Moving buttons, adding clicks to workflows, etc.

My most recent enraging find was the date picker in the reminders app. When editting a reminder, there is an up/down arrow interface to the side of the date, but if you click them they change the MONTH. Who decided that makes any sense. In what world is bumping a reminder by a month the most common change? It’s actually worse than useless, its actively net negative.

admissionsguy 9 hours ago

TIL there is a search bar triggered by CMD+Space. After 15 long years.

rngfnby 9 hours ago

UqWBcuFx6NV4r 8 hours ago

LtdJorge 8 hours ago

Sounds like typical Windows experience

drob518 9 hours ago

Does anyone have any insight into the MacOS scheduler and the algorithm it uses to place threads on E vs. P cores? Is it as simple as noting whether a thread was last suspended blocking on I/O or for a time slice timeout and mapping I/O blockers to E cores and time slice blockers to P cores? Or does the programmer indicate a static mapping at thread creation? I write code on a Mac all the time, but I use Clojure and all the low level OS decisions are opaque to me.

macshome 8 hours ago

Check out the scheduler documentation that Apple has in the xnu repo. https://github.com/apple-oss-distributions/xnu/blob/main/doc...

drob518 7 hours ago

This is exactly what I was looking for. Thanks. Lots of technical details here for those interested.

detourdog 9 hours ago

drob518 9 hours ago

Excellent, thanks!

masklinn 9 hours ago

The baseline is static: low QoS tasks are dispatched to the E cores, while high QoS tasks are dispatched to P cores. IIRC high QoS cores can migrate to the E cores if all P cores are loaded, but my understanding is that the lowest QoS tasks (background) never get promoted to P cores.

drob518 9 hours ago

How is the QoS communicated to the scheduler? Is there a mark on the binary or does the code do it at thread startup?

dcrazy 8 hours ago

saagarjha 8 hours ago

sys_64738 9 hours ago

The article mentions P or E is generally decided by if it's a "background" process (whatever than means). Possible some (undocumented) designation in code or directive to the compiler of the binary decides this at compile time.

masklinn 9 hours ago

sys_64738 9 hours ago

My M2 MBA doesn't have a fan but literally smokes the majority on Intel systems which are space heaters this time of year. Those legacy x86 apps don't really exist for the majority of people anymore.

ProllyInfamous 5 hours ago

If you place 1mm thermal pads between the sinks and the case, the CPUs/GPUs won't throttle as readily. At least for my M3 MBA (check your actual clearance).

I replaced a MacPro5,1 with an M2Pro — which uses soooooo much less energy performing similarly mundane tasks (~15x+). Idle is ~25W v. 160W

zozbot234 4 hours ago

Caution: don't put the laptop in your lap if you've done this. There's a reason it doesn't ship like that out of the box.

psanford 7 hours ago

I'm curious how asahi linux manages scheduling across e cores and p cores. Has anyone done experiments with this?

Edit: It looks like there was some discussion about this on the Asahi blog 2 years ago[0].

[0]: https://asahilinux.org/2024/01/fedora-asahi-new/

kgeist 8 hours ago

Can't Windows/Linux pin background threads to specific cores on Intel too? So that your foreground app isn't slowed down by all the background activity going on? Or there's something else to it that I don't understand. I thought E cores' main advantage is that they use less power which is good for battery life on laptops. But the article makes it sound like main advantage of Apple Silicon is that it splits foreground/background workloads better. Isn't it something that can already be done without a P/E distinction?

ninkendo 2 hours ago

One thing that distinguishes macOS here is that the mach kernel has the concept of “vouchers” which helps the scheduler understand logical calls across IPC boundaries. So if you have a high-priority (UserInitiated) process, and it makes an IPC call out to a daemon that is usually a low-priority background daemon, the high-priority process passes a voucher to the low-priority one, which allows the daemon’s ipc handling thread to run high-priority (and thus access P-cores) so long as it’s holding the voucher.

This lets Apple architect things as small, single-responsibility processes, but make their priority dynamic, such that they’re usually low-priority unless a foreground user process is blocked on their work. I’m not sure the Linux kernel has this.

cosmic_cheese 7 hours ago

It’s both.

Multithreading has been more ubiquitous in Mac apps for a long time thanks to Apple having offered mainstream multi-CPU machines very early on (circa 2000), predating even OS X itself, and has made a point of making multithreading easier in its SDK. By contrast multicore machines weren’t common in the Windows/x86 world until around the late 2000s with the boom of Intel’s Core series CPUs, but single core x86 CPUs persisted for several years following and Windows developer culture still hasn’t embraced multithreading as fully as its Mac counterpart has.

This then made it dead simple for Mac developers to adopt task prioritization/QoS. Work was already cleanly split into threads, so it’s just a matter of specifying which are best suited for putting on e-cores and which to keep on P-cores. And overwhelmingly, Mac devs have done that.

So the system scheduler is a good deal more effective than its Windows counterpart because third party devs have given it cues to guide it. The tasks most impactful to the user’s perception of snappiness remain on the P-cores, the E-cores stay busy with auxiliary work and keep the P-cores unblocked and able to sleep more quickly and often.

kgeist 7 hours ago

Windows has SetThreadPriority and SetThreadAffinityMask since at least Windows XP.

3eb7988a1663 6 hours ago

m132 7 hours ago

It's the combination of the two that yields the best of both worlds.

Android SoCs have adopted heterogenous CPU architectures ("big.LITTLE" in the ARM sphere) years before Apple, and as a result, there have been multiple attempts to tackle this in Linux. The latest, upstream, and perhaps the most widely deployed way of efficiently using such processors involves using Energy-Aware Scheduling [1]. This allows the kernel to differentiate between performant and efficient cores, and schedule work accordingly, avoiding situations in which brief workloads are put on P cores and the demanding ones start hogging E cores. Thanks to this, P cores can also be put to sleep when their extra power is not needed, saving power.

One advantage macOS still has over Linux is that its kernel can tell performance-critical and background workloads apart without taking guesses. This is beneficial on all sorts of systems, but particularly shines on those heterogenous ones, allowing unimportant workloads to always occupy E cores, and freeing P cores for loads that would benefit from them, or simply letting them sleep for longer. Apple solved this problem by defining a standard interface for the user-space to communicate such information down [2]. As far as I'm aware, Linux currently lacks an equivalent [3].

Technically, your application can still pin its threads to individual cores, but to know which core is which, it would have to parse information internal to the scheduler. I haven't seen any Linux application that does this.

[1] https://www.kernel.org/doc/html/latest/scheduler/sched-energ...

[2] https://developer.apple.com/library/archive/documentation/Pe...

[3] https://github.com/swiftlang/swift-corelibs-libdispatch?tab=...

zozbot234 6 hours ago

> As far as I'm aware, Linux currently lacks an equivalent

SCHED_BATCH and SCHED_IDLE scheduling policies. They've been there since forever.

3eb7988a1663 6 hours ago

Similarly, are there any modern benchmarks of the performance impact of pinning programs to a core in Linux? Are we talking <1% or something actually notable for a CPU bound program?

I have read there are some potential security benefits if you were to keep your most exploitable programs (eg web browser) on its own dedicated core.

anarazel 6 hours ago

It's very heavily dependent on what your processes are doing. I've seen extreme cases where the gains of pinning were large (well over 2x when cooperative tasks were pinned to the same core), but thats primarily about preventing the CPU from idling long enough to enter deeper idle states.

anupamchugh 5 hours ago

Pinning exists, but the interesting part is signal quality: macOS gets consistent “urgency” signals (QoS) from a lot of frameworks/apps, so scheduling on heterogeneous cores is less guessy than infer from runtime behavior.

LtdJorge 8 hours ago

Yes, it's the job of the scheduler

ctrlrsf 8 hours ago

Linux yes, of course.

saagarjha 8 hours ago

> Admittedly the impression isn’t helped by a dreadful piece of psychology, as those E cores at 100% are probably running at a frequency a quarter of those of P cores shown at the same 100%

It’s about half, actually

> The fact that an idle Mac has over 2,000 threads running in over 600 processes is good news

I mean, only if they’re doing something useful

ksec 9 hours ago

>If you use an Apple silicon Mac I’m sure you have been impressed by its performance.

This article couldn't have come at a better time. Because frankly speaking I am not that impressed after I tested Omarchy Linux. Everything was snappy. It is like back to DOS or Windows 3.11 era. ( Not quite but close ) It makes me wonder why Mac couldn't be like that.

Apple Silicon is fast, no doubt about it. It isn't some benchmarks but even under emulation, compiling or other workload it is fast if not the fastest. So there are plenty of evidence it isn't benchmark specific which some people claims Apple is only fast on Geekbench. The problem is macOS is slow. And for whatever reason haven't improved much. I am hoping dropping support for x86 in next macOS meant they have time and excuses to do a lot of work on macOS under the hood. Especially with OOM and Paging.

microtonal 8 hours ago

I have a ThinkPad besides my main MacBook. I recently switched to KDE, a full desktop environment, and it is just insane how much faster everything renders than on macOS. And that's on a relatively underpowered integrated Ryzen GPU. Window dragging is butter smooth on a 120Hz screen, which I cannot say of macOS (though it outright terrible with the recent Electron issue).

Apple Silicon is awesome and was a game changer when it came out. Still very impressive that they have been able to keep the MacBook Air passively cooled since the first M1. But yeah, macOS is holding it back.

amelius 9 hours ago

That's just framing. A different wording could be: by moving more work to slow (but power efficient) cores, the other cores (let's call them performance cores) are free to do other stuff.