Request Details

Route
/api_complex GET
Timestamp
Sep 10, 2026 8:11 AM
Duration
152.06 ms
Status
200
Response Size
39 KB
Error
No

Performance Breakdown

Database
19.0% (10 queries)
View Rendering
11.6%
Application Logic
69.4%
Other Operations
0.0%
Total Operations
16
Slowest Operation
152.06 ms

Request Trace

How to read this

Each row is a layer of your stack. Many short Database bars means N+1 queries — fix with includes(). A wide Action bar with little Database time means slow Ruby code. A wide View bar usually means a partial rendered in a loop.

Action
View
Database
Other
Action
View
Database
0.0ms 164.3ms 328.6ms 492.9ms 657.2ms

Operations

How to use this

Sort by Impact to find your biggest wins. Click any row for details and optimisation suggestions. The same SQL appearing multiple times is an N+1 — fix with includes(). A single operation above 50% impact is your highest priority.

Operation Duration Impact Timeline Actions
home#api_complex 152 ms 100.0%
posts/show 31 ms 20.4%
SELECT * FROM users WHERE id = ? 26 ms 17.1%
DELETE FROM posts WHERE id = ? 2 ms 1.3%
SELECT * FROM (SELECT users.id, users.name, users.email, COUNT(posts.id) as post_count FROM users LEFT JOIN posts ON users.id = posts.user_id WHERE users.active = ? GROUP BY users.id) as user_posts JOIN (SELECT user_id, COUNT(*) as comment_count FROM c... 21 ms 13.8%
SELECT * FROM comments WHERE post_id = ? ORDER BY created_at DESC LIMIT ? 17 ms 11.2%
SELECT * FROM comments WHERE post_id = ? ORDER BY created_at DESC LIMIT ? 8 ms 5.3%
SELECT name FROM users 3 ms 2.0%
posts/show 14 ms 9.2%
home#api_complex 152 ms 100.0%
home#api_complex 152 ms 100.0%
home/index 31 ms 20.4%
UPDATE posts SET view_count = view_count + ? WHERE published = ? 9 ms 5.9%
SELECT users.*, posts.*, comments.*, COUNT(DISTINCT posts.id) as post_count, COUNT(DISTINCT comments.id) as comment_count, AVG(posts.view_count) as avg_views, MAX(comments.created_at) as latest_comment FROM users LEFT JOIN posts ON users.id = posts.use... 7 ms 4.6%
SELECT posts.title, posts.content, users.name FROM posts JOIN users ON posts.user_id = users.id WHERE posts.published = ? 20 ms 13.2%
SELECT users.*, COUNT(DISTINCT posts.id) as post_count, COUNT(DISTINCT comments.id) as comment_count, SUM(posts.view_count) as total_views, AVG(posts.view_count) as avg_views, MIN(posts.created_at) as first_post, MAX(posts.created_at) as latest_post FR... 12 ms 7.9%