Skip to content
Back to skills

Profiling Performance

ASecurity

Profile a running web application's CPU performance using Cursor's built-in browser profiler. Captures call stacks, identifies slow functions, and suggests optimizations. Use when a page feels slow or janky.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 10, 2026
developmentreactnodeapiperformance

Works with

  • cursor
  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add 0xAidan/polymarket-bot-test --skill profiling-performance --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Profiling Performance?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Profiling Performance
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/0xaidan-profiling-performance/badge)](https://www.skillsdirectory.com/skills/0xaidan-profiling-performance)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: profiling-performance
description: Profile a running web application's CPU performance using Cursor's built-in browser profiler. Captures call stacks, identifies slow functions, and suggests optimizations. Use when a page feels slow or janky.
---

# Performance Profile

Use this skill when a web application feels slow, janky, or unresponsive. Cursor's built-in browser has CPU profiling tools that capture real call stacks and timing data.

## How It Works

The `cursor-ide-browser` MCP provides `browser_profile_start` and `browser_profile_stop` tools that capture Chrome DevTools-format CPU profiles. Profile data is written to `~/.cursor/browser-logs/` as both raw JSON and a human-readable summary.

## Steps

1. **Ensure the app is running** — start the dev server if it isn't already running.

2. **Navigate to the slow page**:

   ```
   Tool: browser_navigate
   Arguments: { "url": "http://localhost:3000/slow-page" }
   ```

3. **Start profiling**:

   ```
   Tool: browser_profile_start
   ```

4. **Reproduce the slow interaction** — use browser tools to trigger the slow behavior:
   - Click buttons, scroll, type in inputs, navigate between pages
   - Use `browser_click`, `browser_scroll`, `browser_fill` to interact
   - Wait a few seconds for the interaction to complete

5. **Stop profiling**:

   ```
   Tool: browser_profile_stop
   ```

   This writes two files to `~/.cursor/browser-logs/`:
   - `cpu-profile-{timestamp}.json` — raw Chrome DevTools profile
   - `cpu-profile-{timestamp}-summary.md` — human-readable summary

6. **Analyze the results** — read both files. Key things to look for in the raw JSON:
   - `profile.nodes[].hitCount` — how many samples hit each function
   - `profile.nodes[].callFrame.functionName` — the function names
   - `profile.samples.length` — total number of samples collected

   Cross-reference with the summary to identify:
   - Functions consuming the most CPU time
   - Unexpected re-renders or layout thrashing
   - Expensive third-party library calls
   - Synchronous operations blocking the main thread

7. **Suggest fixes** — based on the profile data, recommend specific optimizations:
   - Memoize expensive computations
   - Debounce rapid event handlers
   - Move heavy work to a Web Worker
   - Lazy-load components or routes
   - Virtualize long lists

## Notes

- Always read the raw `.json` profile to verify the summary — the summary can miss nuances.
- Profile in development mode first, but be aware that React dev mode adds overhead. For accurate measurements, profile a production build.
- Short profiles (2-5 seconds of interaction) are usually more useful than long ones.
- Compare before/after profiles to verify your optimization actually helped.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…