profiling-performance
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.
How do I install this agent skill?
npx skills add https://github.com/spencerpauly/awesome-cursor-skills --skill profiling-performanceIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill provides a standard and safe framework for performance profiling of web applications using built-in browser automation tools. It guides the user through capturing CPU profiles and analyzing the resulting log data to suggest legitimate performance optimizations.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- ZeroLeakspass
Score: 93/100 · 2 sections analyzed
What does this agent skill do?
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
-
Ensure the app is running — start the dev server if it isn't already running.
-
Navigate to the slow page:
Tool: browser_navigate Arguments: { "url": "http://localhost:3000/slow-page" } -
Start profiling:
Tool: browser_profile_start -
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_fillto interact - Wait a few seconds for the interaction to complete
-
Stop profiling:
Tool: browser_profile_stopThis writes two files to
~/.cursor/browser-logs/:cpu-profile-{timestamp}.json— raw Chrome DevTools profilecpu-profile-{timestamp}-summary.md— human-readable summary
-
Analyze the results — read both files. Key things to look for in the raw JSON:
profile.nodes[].hitCount— how many samples hit each functionprofile.nodes[].callFrame.functionName— the function namesprofile.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
-
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
.jsonprofile 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.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/spencerpauly/awesome-cursor-skills/profiling-performance">View profiling-performance on skillZs</a>