You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c519446
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+12-1Lines changed: 12 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,8 +8,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
## [Unreleased]
9
9
10
10
### Added
11
-
-**Prisma without code changes:**`traceperf/auto` and `traceperf run` track every Prisma Client call (`prisma.User.findMany`, raw queries as `prisma.raw.$queryRaw SELECT users`), including clients made with `$extends`. `instrumentPrisma(tp, require('@prisma/client'))` does it by hand.`prismaExtension` steps aside when this is active, so calls are not counted twice.
11
+
-**Prisma without code changes (5, 6 and 7):**`traceperf/auto` and `traceperf run` track every Prisma Client call (`prisma.User.findMany`, raw queries as `prisma.raw.queryRaw`) through Prisma's own tracing hook, so it works with clients generated anywhere (Prisma 7's `prisma-client`), `$extends` and driver adapters, and keeps `@prisma/instrumentation` (OpenTelemetry) working. `instrumentPrisma(tp)` does it by hand;`prismaExtension` steps aside when it is active.
12
12
-**better-sqlite3, and so Drizzle on SQLite:**`instrumentBetterSqlite3`; auto-detected. Drizzle on pg or mysql2 was already covered through those drivers.
13
+
### Changed (from running it on Prisma's REST example, not just the planted apps)
14
+
-**Grouped findings show the typical case**, not the worst: one cold start no longer makes every request look slow. The worst is mentioned (`typical shown; worst 191 ms`), and a finding seen in under 5% of 20+ requests is dropped as noise; otherwise its share is given (`in 1 of 172 GET /feed`).
15
+
- "X took 97% of the request" is no longer said of a request that makes a single call, unless that call takes 100 ms or more.
16
+
- Sequential or repeated calls made *inside* a driver or ORM call (Prisma's `include` runs two queries) are not reported: the app can't reorder them.
17
+
- Blocking inside a dependency or Node.js internals gets "the time is inside pg (library code)…" instead of "move it to a worker thread".
18
+
-`traceperf run`: queueing with nothing blocking is described as the app's throughput limit, with what to do about it.
-`traceperf run -- npx tsx app.ts` hung after the load and left the app running: only `npx` was stopped. The app now runs in its own process group, which is stopped as a whole (also on Ctrl-C and when `run` itself is terminated).
23
+
13
24
- N+1 fixes name the Prisma (`include`, `where: { id: { in } }`) and Drizzle (`inArray`) way.
expect(findings[0].message).toContain('GET /ping took 0.2 ms in the app (median) but clients waited 190 ms');
253
+
expect(findings[0].message).toContain('GET /ping took 0.2 ms in the app (median) but clients waited 190 ms');expect(findings[0].message).toMatch(/seeblockingcodeabove/);
254
+
expect(findings[0].fix).toBeUndefined();
255
+
// Nothing blocked: the app is simply at its throughput limit
0 commit comments