ahoque.org

Personal Blog

Follow me on GitHub
ahoqueali Software Architect ahoque.ali@ahoque.org

Benchmarking Local LLMs on the M4 Pro MacBook Pro

22 Sep 2026 — by Ibaadul Hoque

Finding a large language model that runs well locally is a game of trade-offs. This is a roundup of notes from stress-testing thirteen open-weight models through Ollama on a 24 GB MacBook Pro M4 Pro — measuring tokens per second, accuracy, RAM fit, chip saturation and overall sanity.

Summary

Models are marked with a medal for the standouts: 🎖️ for the winner, 🥈 for the runner-up, and 🥉 for the bronze.

Model Speed (tok/s) Accuracy Notes
Qwen3.8:27b MLX 🎖️ 22.59 Very accurate Fits well, saturates M4 Pro
Gemma 4 31B 🥈 9.85 Highly accurate Fits in 24 GB, needs a custom fan curve
Gemma4:12b MLX 🥉 39.78 Above average Runs slower than the 26b variant
Qwen3:14b 24.54 Average Efficient, ~9 GB RAM to spare
Cogito:14b 25.25 Lacking Heat/inefficient, not recommended
Devstral-small-2:24b 15.8 Fast enough, but can’t count
Magistral:24b 15.75 Very high detail Efficient, precision-oriented
Mistral-small:24b 16.39 Mediocre Below average efficiency
Gemma4 55.29 Pretty accurate Unaware of the ~4000 token limit
Ornith 1.5 35B 6.78 Very accurate Swaps ~8 GB, throttled
Granite4.2:30B Unresponsive / fails to load
Qwen3.6:27b MLX Doesn’t run (excessive size)
North-mini-code-1.0 NVFP4 Doesn’t run (excessive size)

The Medallists

🎖️ Qwen3.8:27b MLX variant

  • Runs pretty fast at 22.59 tokens per second
  • Very accurate
  • Fits very well on RAM
  • Saturates the M4 Pro

🥈 Gemma 4 31B

  • Runs decently fast at 9.85 tokens per second
  • Highly accurate
  • Doesn’t get cut off like Gemma4 latest
  • Fits perfectly into the 24 GB of RAM on the MacBook Pro M4 Pro
  • Fully saturates the M4 Pro chip
  • Requires a custom fan curve to run at peak performance and efficiency — performance cores hit upwards of 110 °C under constant heavy load (recommended adjustment with “Mac Fan Control”)

🥉 Gemma4:12b MLX variant

  • Runs pretty fast at 39.78 tokens per second
  • Above average accuracy
  • Does not saturate the 24 GB of RAM
  • Somehow runs slower than the 26b variant

Notes by Model

Qwen3:14b

  • Runs pretty fast at 24.54 tokens per second
  • Fits very well on RAM, leaving roughly 9 GB to spare
  • Average attention to detail
  • Pretty efficient

Cogito:14b

  • Runs pretty fast at 25.25 tokens per second
  • Doesn’t spend time to think
  • Lacking accuracy / attention to detail
  • Fits well on RAM using only 9 GB of RAM*
  • Inefficient — the CPU runs hot relative to the tokens generated

* While in operation, Activity Monitor only saw Ollama use a max of one gigabyte of RAM. Unable to figure out why.

Model not recommended.

Devstral-small-2:24b

  • Runs decently fast at 15.8 tokens per second
  • Fits well on RAM
  • Can’t count — when asked for a 4000-word essay it produced less than 1000 words while claiming to have written roughly 4000
  • Efficient-ish

Magistral:24b

  • Runs decently fast at 15.75 tokens per second
  • Very high attention to detail
  • Fits very well on RAM
  • Pretty efficient

This model is oriented toward doing tasks to the highest degree of accuracy it can muster. Don’t believe it? Try saying hello.

Mistral-small:24b

  • Runs decently fast at 16.39 tokens per second
  • Doesn’t spend time to think
  • Mediocre accuracy / attention to detail
  • Fits well on RAM using only 14 GB of RAM*
  • Below average efficiency

* Again, Activity Monitor failed to properly detect the RAM utilisation of the model. This asterisk will appear if the same error shows up in other tests.

Gemma4

  • Runs extremely fast at 55.29 tokens per second
  • Pretty accurate
  • Completely unaware of the token limit of around 4000

Ornith 1.5 35B

  • Runs decently at 6.78 tokens per second
  • Very accurate, likes to think a lot
  • Saturates all 24 GB of RAM, forcing macOS into roughly 8 GB of swap space
  • Unable to fully saturate the M4 Pro chip due to swap usage

Test methodology note: these tests were carried out directly through Ollama in the terminal. Using the desktop application appears to have major adverse effects on performance — the Ollama desktop application seems extremely buggy.

The Non-Runners

Three models failed to run, mostly due to size:

  • Granite4.2:30B — unresponsive, fails to load even though it theoretically fits on RAM. Not recommended; use Ornith or something similar.
  • Qwen3.6:27b MLX variant — doesn’t run due to the model’s excessive size.
  • North-mini-code-1.0 NVFP4 MLX variant — doesn’t run due to the model’s excessive size.

Takeaways

  • Qwen3.8:27b MLX is the sweet spot for speed + accuracy + RAM fit on a 24 GB M4 Pro.
  • Gemma 4 31B is the most accurate heavyweight, but budget for a fan curve if you want sustained peak performance.
  • The Ollama desktop app noticeably hurts performance versus the terminal — run benchmarks in the terminal.
  • Bigger is not better when the machine starts swapping to keep up.