I think this is partially down to Framework being a very small and new company that doesn't have the resources to make the best use of every last coulomb, rather than an inherent deficiency of x86. The larger companies like Asus and Lenovo are able to build more efficient laptops (at least under Windows), while Apple (having very few product SKUs and full vertical integration) can push things even further.

notebookcheck.com does pretty comprehensive battery and power efficiency testing - not of every single device, but they usually include a pretty good sample of the popular options.

Framework is a bit behind the others in terms of cooling, apparently due to compromises needed to achieve modularity. However, a well-tuned Ryzen U in the latest ThinkPads is not that far from M chips in terms of computing power per Watt according to some benchmarks.

Most Linux distributions are not well tuned, because this is too device-specific. Spending a few minutes writing custom udev rules, with the aid of powertop, can reduce heat and power usage dramatically. Another factor is Safari, which is significantly more efficient than Firefox and Chromium. To counter that, using a barebones setup with few running services can get you quite far. I can get more than 10 hours of battery from a recent ThinkPad.

> using a barebones setup with few running surfaces

The entire point here is that you can run whatever the hell you want on Apples stuff without breaking a sweat. I shouldn’t have to counter shit.

+1 on powertop, i have use it successfully for tunning old macs that I have upcycled with Linux and difference is day & night.

powertop helps a lot, I went from 3-4 hours to 6-7 hours on a ThinkPad. That said, it's not something you would want to bother a regular user with. E.g. enabling powertop optimizations will enable USB autosuspend, this will add a delay every darn time you didn't touch your USB keyboard or mouse for a second. So, you end up writing udev rules that excludes certain HID devices (or using different settings for when a laptop is on power or not), etc.

These are the kinds of optimizations that macOS does out of the box and you cannot expect most Linux users to do (which is one of the reasons battery life is so bad on Linux out-of-the-box).

I agree. The trick is to use powertop's suggestions to craft good udev rules, not to enable the powertop optimizations daemon directly. That doesn't work well in many scenarios. Someone should create a udev rule hardware database, or a udev rule generator for laptops and desktops to help common users.