function isThermalThrottling() {
return true;
}
Seriously, I loved that computer for the most part but I was a little annoyed that I paid a lot of money for the i9 CPU just to get worse performance than the i7.I have an M1 Max MBP now and it has been absolutely perfect.
So instead of the CPU or GPU going bonkers, the body gets too hot and they lose thermal dissipation capacity for the normal usage and then overheat and then throttle. They go 100% on the graphs because the throttling reduces frequencies and then load becomes too heavy.
Experiment other adapters and monitors.
On Macbooks with fans, I started tuning my fan curve with iStat Menus (https://bjango.com/help/istatmenus7/fans/#custom-fan-curve) because I noticed the default curve was lagging behind and thermal throttling kicked in before the fan even reach max speed.
For Apple Silicon specifically, I recently discovered that there is a "high power mode" (https://support.apple.com/en-us/101613) that allows the fans to run at higher speed. So I don't use the custom fan curves anymore, it helped me a lot (but it does get quite noisy on a 14" M4 Max)
For a Macbook Air, not much you can do besides closing stuff, or elevating the macbook and pointing a fan at it or things like that... but yeah it's a bit desperate!
Environment: I am currently playing with a pid control function for my gpu fan, that is instead of saying "map temp x to fanspeed y"(fan curve) say "set fan to speed needed for temp z"(pid control)
Question: is there a reason pid type control is never a thermal option? Or put another way, is there something about the desired thermal characteristics of a computer that make pid control undesirable?
As a final thought, I have halfway convinced myself that in a predictable thermal system a map would match a set of pid parameters anyway.
I've only every seen something like this in really high reliability equipment because they're worried about repeated thermal expansion causing cracks in the boards/solder joints. There is, often, heaters available for use if the temperature gets too low. For most equipment I think that the juice just isn't worth the squeeze so it isn't done.
Why though? I generally don't care about the specific temperatures of my CPU and GPU, just that they don't get too warm, so for the CPU (AIO) I basically have "0% up until 45C, then increment up to 100% when it hits 90C" and the same for the GPU except it's always at 10%.
I guess I could figure out target temperatures, and do it the other way, but I'm not sure what the added complexity is for? The end results (I need at least) remains the same, cool down the hardware when it gets hotter, and for me, the simpler the better.
I also have two ambient temperature sensors in the chassi itself, right at the intake and the outtake. The intake one is just for monitoring if my room gets too warm so the computer won't be effective at cooling (as the summers here get really warm) and the outtake one is to check overall temperature and control the intake fans. In reality, I don't think I need to do even this, just the CPU+GPU temperature + set fan speed based on that feels simple enough to solve 99% of the things you'd like to be able to do here.
And now am about halfway through building pid fan control software and a janky gpu temp simulator so I can get some intuition on tuning the pid parameters before I set it on my actual gpu. you know, the fun part of computing. But now I am worried that perhaps there is a real reason nobody does it this way.
I think no one is doing it that way, because there is simply no need for it. Sure, when I'm 3D printing some material it sometimes need the heatbed to be exactly 45C or whatever, but why would I care about the specific temperature of my GPU? As long as it's not throttled when GPU utilization is at 100%, I'm good to go.
KISS :)
Again though I could be totally off. I just remember that being spread around as “conventional wisdom.”
Yeah, I'd understand not wanting to go between 0C and 90C over and over. But my GPU idles at around 35C, maxes out at 85C or something, and going back and fourth will surely be preferable than staying with a single temperature but voltage clock the card. Especially considering performance.
But again, I'm using my card for ML, number-crunching, simulations and VFX, you might be right that the use case of cryptocurrency mining prefers a different thermal profile.
I limit power consumption profiles and clock speeds unless higher power is required, and combine that with an oversized cooling system - keeps regular temps consistent.
For most people a fan curve is more obvious to work with and it’s largely good enough without the irritating behaviors insufficiently tuned control loops can exhibit.
I adjusted it to ramp the fans up at more conservative values because otherwise during intense usage periods it would hit 90C+.
I sometimes face thermal throttling because a process has gone wacko, and all I have to do is kill it. But first I have to notice it.
I rarely notice until half my battery is gone!
Quit some apps probably. I often have a bunch of stuff running in the background that I haven't bothered to close yet. It also sounds like it'd be good for detecting software that's gotten stuck in a busy loop or similar.
And/or possibly take a tea break while it chills out.
Depends on the environment, back when I had a MacBook, they still had fans, but the new ones are all passive, I think. So then the surface (or lack of it) below it would matter the most. If you keep it in your lap, on top of a hairy blanket, it'll be a lot effective at getting rid of the heat compared to if you have it sitting on a stone table, as just one example.
Edit: Seemingly the split of Air/Pro being passively/actively cooled seems to still apply today, so then checking fans, their performance and intakes/outtakes for chaff tends to be the best way, if you have a Pro.
Remember to put your coat and hat on!
Is there a similar free way for getting Windows signatures?
There's another possibility. If your battery is low and you've mistakenly plugged it into a low-power USB-C source (phone charger), you will also see 100% CPU usage, low power usage, and terrible performance. Probably not the author's problem, but it's been mine more than once! It might be worth adding something to detect this case, too. You can see your charger power under "System Information"; I assume there's an API for it also.
IIRC the next generation of MacBook was the one that came with the larger power brick, which didn’t at all surprise me after that experience. Then they switched to GaN to bring the brick size back down.
When I read this I wondered "Why isn't core temperature alone not a reliable indicator of thermal throttling?". Isn't that the state variable the thermal controller is directly aiming to regulate by not letting it exceed some threshold?
On my MacBook Pro, I have come to the conclusion that Apple priorities low noise level over heat dissipation. And I have my Mac fan control to have a minimum fan speed.
you could easily put this in the App Store (maybe?) and I'd have thrown a few bucks your way.
The amount of fur that manages to squeeze everywhere is insane.
The WORST thing, though, is that all her fur makes its way into all my musical instruments, including underneath each individual key of my upright piano (now effectively a felt piano).
Foolish me is considering buying a new macbook this year. I have no choice because Apple and Microsoft will do everything in their power to ship the shittiest personal computing products every year.
If you want to keep using it (maybe not as your main machine) there are some workarounds and fixes:
The simple software only way is to deactivate Turbo and/or HT. Less performance but also less power use meaning less heat. And checking gmail or browsing the web you probably wont notice much of a difference.
Or you can open it up and add thermal pads to your VRMs, finally giving them adequate cooling. Just dont touch the bottom of your macbook afterwards or rest it on your bed or couch, that thing can get hot!
They produced a laptop that you can't type efficiently on?? That misses key strokes?! I had to slow my typing on those keyboards!
So, imagine the incredible contempt I have had for Apple for failing such a basic delivery. Still, their new silicon machines managed to turn my opinion around -- quite the 180. The speed improvement is genuinely remarkable, and the modern build quality otherwise seems excellent to me.
It's worth another try imo.
1. Have you considered adding historical tracking/graphing? Being able to see throttling patterns over time would be super valuable for understanding workload impacts and diagnosing thermal issues.
2. What metrics are you pulling to detect throttling? CPU frequency scaling, temperature sensors via IOKit, or something else? Would be interested in the technical details.
3. Integration with menu bar apps like iStat Menus or Stats could be useful - or even just exporting metrics to a format they can consume.
4. For M-series chips, have you noticed different throttling behavior compared to Intel Macs? The efficiency/performance core split makes this more complex.
5. Any plans to add alerts/notifications when throttling occurs? Or maybe even automated actions (like pausing backup processes when thermal throttling is detected)?
One use case: this would be great for developers running heavy builds or ML training. Knowing when your machine is throttling helps decide whether to optimize code, get better cooling, or just wait it out.
> Have you considered adding historical tracking/graphing? Being able to see throttling patterns over time would be super valuable for understanding workload impacts and diagnosing thermal issues
Would it actually though? Is anyone going to ever check if their laptop was throttling at 6pm yesterday evening and then remember what they were found at that time and try to "understand workload impacts"? It's the type of thing that might come in kinda useful once in a while, not "super valuable". Idk, I notice this trend with LLMs a lot. Often what they say just doesn't really make sense when you think about it.
Come along with me! We'll destroy the planet so fast that we'll all be cinders before you know it.
All we have to do is gobble the marketing speak so fast and make everything shiny and new, and we'll all be dead before you can say "Greta Thunberg."
Come die with me for thin and for stylish. Kill the animals with me for "sleek".
Die. With. Me. Now! I made an app!