Skip to content

Profiles and recommendations

Every profile in the Workspace, what they say to fix, and AI summaries.

Profiles and recommendations

Observe › Profiles gathers every profile in the Workspace, of every Service and server, and starts with what they say to fix.

Recommendations

When a profile finishes, SlideOps reads it for kinds of work that commonly cost more than they should. Each finding has a share, a severity and what to do about it, written for the language the hot code is in. The same findings appear in three places:

  • What to look at, near the top of each profile.
  • The top of a Service's Performance tab, from its newest profile.
  • Recommendations on the Profiles page: the findings of each Service's newest profile of each type, ranked across the Workspace.

Each is marked Fix first or Worth a look. On a profile, show … in the graph finds the function it is about.

What is looked for

FindingFires whenWhat it suggests
Serializing data takes a large shareJSON, YAML, pickle and similar take 15% or moreSerialize less and cache responses; a faster encoder for the language, such as orjson for Python
Regular expressions take a large share10% or moreCompile patterns once, anchor them, or use plain string operations
Garbage collection takes a large share10% or moreCapture Where memory is allocated, then reuse buffers and objects there
Logging takes a large share10% or moreLog less on the hot path, raise the level, or log asynchronously
Compression takes a large share10% or moreA lower level, compress once and cache, or let the proxy compress
Hashing or encryption takes a large share15% or moreCheck a password hash is not verified on every request; keep TLS connections alive
Database client code takes a large share20% or moreFewer, larger queries rather than one per row; select only the columns needed
Rendering templates takes a large share15% or moreCache rendered pages or fragments
Most of the CPU time is in the kernel40% or more of a CPU profileBatch I/O, reuse connections, buffer writes
Most of the time is spent waiting60% or more of a wall-clock profileThe CPU is not the problem; see where it waits
Much of the profile has no function names20% or more in stripped binaries you shipUpload debug symbols
Start with a functionOne of your functions is answerable for 40% or moreMaking it do less is the biggest single win
A function holds most of the memory50% or more of a memory profileCompare two captures an hour apart to see whether it grows

A box is counted once, at the outermost function that matches, so json.dumps calling the JSON encoder is not counted twice. A finding becomes Fix first at a higher share, typically twice its threshold.

These are worked out by SlideOps itself from the profile, with no AI involved.

AI summaries

When your SlideOps deployment has an AI model configured, each profile offers Explain this profile. It writes a short explanation in plain English and up to three actions, most valuable first.

  • Nothing is sent until you press the button, and the page names the model first, for example "claude-sonnet-5 at api.anthropic.com".
  • What is sent is the profile's figures: its answer, its hot spots, its top functions with their files and shares, its languages and its findings. Never your code, and never data your Service handled.
  • The summary is kept on the profile, and Write it again asks for a fresh one.
  • Every request is recorded in the audit trail.

When no model is configured, the profile says "AI summaries are off on this deployment" and everything else works as before.

Turning AI summaries on

Whoever runs the SlideOps deployment sets these on its API:

VariableMeaning
SLIDEOPS_AI_PROVIDERanthropic, or openai for any OpenAI-compatible server, including Ollama and vLLM
SLIDEOPS_AI_API_KEYThe provider's key. Not needed for a local server without one.
SLIDEOPS_AI_MODELThe model. Defaults to claude-sonnet-5 for Anthropic; required for openai.
SLIDEOPS_AI_BASE_URLOptional. The provider's address, such as http://localhost:11434/v1 for Ollama.

Every profile

Below the recommendations, every profile in the Workspace, newest first. Each row shows its question, the Service or server it belongs to, how it was captured (Spike and Continuous are marked), its one-sentence answer, and its length and age.

Filter by:

  • Service or server
  • Profile type
  • How it was captured: by hand, continuously, or on a CPU spike

Tick any two of the same type and press Compare these two, across Services too. See Comparing profiles.