All posts
Guides

Ollama or LM Studio Slow on Mac? Diagnose and Fix It

The MacNative Team7 min read

Fix slow local AI on Mac by separating model loading, prompt processing, and generation. Check memory pressure, GPU use, and context length.

“Local AI is slow” can describe several different waits: downloading a model, loading it into memory, reading a long document, thinking before answering, or generating words one at a time. They need different fixes.

First identify when the delay happens. Then change one variable and repeat the same task. Otherwise you can spend an afternoon switching apps without discovering that your oversized context setting was the problem.

Bottom line

Compare a short prompt in a fresh chat with your slow task. Watch Activity Monitor's Memory Pressure and check which model is actually running. If short chat is fast but document chat is slow, investigate the input and context before blaming the Mac.

On this page

Separate loading from generating

A first response after opening an app can include loading model weights from disk. A follow-up may reuse a model already in memory. Comparing the first run in one app with a warm follow-up in another isn't a fair speed comparison.

Long input creates another wait. Before generating an answer, a model must process the prompt and any included history or documents. Some models also produce a reasoning phase before the visible answer. A silent-looking interval doesn't necessarily mean the app is frozen.

Four controlled comparisons to diagnose slow local AI: cold versus warm loading, full document versus excerpt, larger versus smaller model, and agent task versus plain chat.
Change one variable at a time and compare the same task. The colored traces illustrate possible differences; they are not measured timings or guaranteed improvements.
Where it slows downLikely place to investigateUseful comparison
Before the model is readyDownload, storage, runtime loading, or memory allocationFirst run versus a second run with the same loaded model
After attaching a large fileExtraction, retrieval, and prompt processingA short excerpt versus the full document
Words arrive slowlyModel size, compute path, memory bandwidth, or memory pressureA smaller model with the same short prompt
The whole Mac becomes sluggishMemory pressure or competing workloadsAI running versus model unloaded
The agent pauses between actionsTools, network requests, approvals, or retriesPlain chat with tools disabled

Make a five-minute baseline

Write down the app version, Mac chip and RAM, exact model name and quantization, and context setting. If you use BoltAI or Osaurus, record the selected provider too. A remote model's delay may be network or service latency rather than local inference.

Open Activity Monitor → Memory. Note Memory Pressure and Swap Used before the test; compare changes while the model works. Apple's memory documentation explains why occupied memory alone is not a reliable problem indicator.

Run this short prompt in a fresh chat, with no attachments or tools:

Rewrite this sentence as a clear, friendly email of no more than
50 words. Keep the dates unchanged:

We received the files on Monday and will send our review on Thursday.
Please confirm whether you want comments on the mobile design too.

Record roughly how long it takes to start and finish. Repeat in another fresh chat while the model is still loaded. Then run your original task. Use this as a diagnostic comparison, not a benchmark to publish without more controlled testing.

Use the downloadable test worksheet to keep those three runs comparable. Record both time to the first visible answer and time to completion; a longer answer can take more total time without being slower per token.

If the short prompt is fine and your original task isn't, you have narrowed the problem substantially.

Change the setting that matches the symptom

1. Reduce context when long chats are the problem

Try a fresh conversation and a shorter input. Lower an unnecessarily large context allocation, then reload the model if the app requires it. Keep enough room for the instructions, input, and answer.

Ollama's context guide documents the memory cost of larger context windows. A model advertising a very long maximum doesn't mean that allocating it is sensible for every Mac.

For a document, ask about one section first. If that works, improve the retrieval or split the task rather than repeatedly feeding the entire document. Our PDF guide explains the tradeoff.

2. Try a smaller model when generation is the problem

Use the same prompt with a smaller compatible model. If you compare quantizations, keep the base model the same where possible; otherwise both capability and size change at once.

Judge the final result, including corrections. A faster model that consistently changes dates may save no time. A slower but accurate model might be acceptable for a batch task and unpleasant for live dictation.

3. Stop overlapping AI workloads

A transcription model, chat model, browser, and video editor can compete for the same machine. Unload unused models from their apps before retrying. Closing a chat window doesn't always stop its background runtime.

Sequence the work: transcribe first, then summarize. If that resolves the slowdown, you have learned more than you would from reinstalling either app.

4. Check the engine and installation

Use a supported native Mac installation and a model format compatible with its runtime. Don't assume every engine uses the same acceleration path.

Ollama's FAQ notes that Docker Desktop on macOS doesn't provide the GPU passthrough needed for its documented GPU-accelerated container route. If you followed a generic Linux container tutorial, compare with the native Mac installation. Ollama GPU and container notes

Avoid copying low-level memory-limit commands from benchmark posts as a first fix. They can change system behavior without addressing the workload that caused the problem.

Useful Ollama checks that don't change your files

With Ollama running, open Terminal and enter:

ollama ps

This shows loaded models. Inspect the processor and context information in your version. A model running through the CPU when you expected GPU acceleration is worth investigating; it isn't a reason to assume every CPU percentage in Activity Monitor represents the inference engine.

To unload a model, copy its exact name from that output and replace the placeholder below:

ollama stop MODEL_NAME

This frees its loaded state; it doesn't delete the download. Ollama command reference

For developers using the API, the generate response includes separate timing fields such as load_duration, prompt_eval_duration, and eval_duration. Those can help distinguish loading, input processing, and generation. They don't measure whether the answer is correct or how long a human spends editing it.

Turn Ollama timing fields into a useful comparison

For a completed API response, calculate generation speed as:

generated tokens per second = eval_count / (eval_duration / 1,000,000,000)

Ollama reports durations in nanoseconds. An illustrative response with 120 generated tokens and an eval_duration of 6,000,000,000 gives 20 tokens per second. That is arithmetic, not a measurement from a tested Mac. Keep load_duration and prompt_eval_duration separate: generation speed does not include those waits. Response field definitions

When comparing two runs, keep the model, quantization, prompt, context, and power setup the same. A reasoning model may spend time producing thinking output before showing the final answer, so note that mode too. The useful result is the time to a correct answer, not the largest speed number.

If the app crashes or fails to load rather than merely running slowly, inspect its logs. Ollama documents Mac logs under ~/.ollama/logs/. Review them locally and remove sensitive paths or content before sharing a report. Troubleshooting guide

What if the Mac is fast at first, then slows down?

Check whether the conversation grew, another workload started, or the model was unloaded and had to reload. Also look at the Mac's power mode and cooling conditions. Compare on a stable power setup and a hard surface with ventilation available, rather than making several settings changes together.

Will more RAM fix it?

Only if memory is the limiting factor. More capacity can help an overloaded configuration, but it won't guarantee faster token generation for a model that already fits. Read the local AI memory guide before treating a hardware purchase as the next troubleshooting step.

A useful support report ends with a specific finding: “The short prompt is responsive, but this document causes memory pressure,” or “The first load is slow; the next three prompts are fine.” That gives you—and the developer—something concrete to fix.

Editorial review: October 25, 2026. This is a documentation-based guide with original practice examples, not a hands-on app benchmark. Check the linked developer documentation for your installed version.

Enjoyed this one?

Get our picks and deal roundups twice a month — nothing else.

Free to join · Twice a month · Unsubscribe anytime

Keep reading