Gemini 3.8 Flash vs Gemma 4 26B A4B (Workers AI)
Reading a 26.2K-token pull request costs $0.0197 on Gemini 3.8 Flash, 7.5× the $0.0026 it costs on Gemma 4 26B A4B (Workers AI). Gemini 3.8 Flash is a mid-range model and Gemma 4 26B A4B (Workers AI) a economy one. In the benchmark Gemini 3.8 Flash caught 42 percentage points more of the known defects than Gemma 4 26B A4B (Workers AI) (95% interval +25 pts to +58 pts, a − b).
Side by side
| Figure | Gemini 3.8 Flash | Gemma 4 26B A4B (Workers AI) |
|---|---|---|
| Price tier | Mid-range | Economy |
| Bugs caughtshare of known bugs | 68% (better) | 26% |
| False alarmsper clean PR | 1.0 | 0.4 (better) |
| Cost per reviewmeasured | $0.0862 | $0.0048 (better) |
| Cost per bug caught | $0.1166 | $0.0209 (better) |
| Exact linecatches on the expected lines | 94% (better) | 91% |
| Review timemean | 427s | 308s (better) |
| Typical review calllist price | $0.0287 | $0.0033 (better) |
| Input / 1M tokens | $0.75 | $0.10 (better) |
| Output / 1M tokens | $3.75 | $0.30 (better) |
| Context window | 1M | 256K |
Head to head
The known bugs both were scored on, by who caught each in at least one run.
By language
| Model | All | TypeScript6 bugs | Go4 bugs | Java4 bugs | Rust4 bugs | C#3 bugs | JavaScript3 bugs | Kotlin3 bugs | PHP3 bugs | Python3 bugs | Ruby3 bugs | Swift3 bugs | C++2 bugs | C1 bug |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Gemini 3.8 Flash | 68% | 83% | 75% | 43% | 75% | 78% | 67% | 0% | 50% | 83% | 100% | 100% | 50% | 50% |
| Gemma 4 26B A4B (Workers AI) | 26% | 33% | 0% | 30% | 38% | 7% | 0% | 56% | 33% | 44% | 67% | 0% | 0% | 0% |
Of the 42 known bugs both were scored on, both caught 13 and neither caught 8. Gemini 3.8 Flash caught 18 bugs that Gemma 4 26B A4B (Workers AI) missed: 3 in Go, 3 in Swift, 2 in C#, 2 in JavaScript, 2 in TypeScript, 1 in C, 1 in C++, 1 in PHP, 1 in Python, 1 in Ruby and 1 in Rust. Gemma 4 26B A4B (Workers AI) caught 3 bugs that Gemini 3.8 Flash missed: 3 in Kotlin, most of them logic bugs.
On pull requests with no known bug, Gemini 3.8 Flash raised 1 false alarms per review and Gemma 4 26B A4B (Workers AI) 0.4. A measured review cost $0.0862 on Gemini 3.8 Flash, 18× the cost of $0.0048 on Gemma 4 26B A4B (Workers AI).
| Pull request | Language · kind | Gemini 3.8 Flash | Gemma 4 26B A4B (Workers AI) |
|---|---|---|---|
| OrchardCMS/OrchardCoreSimplify using `StringValues` in Liquid templates | C# · Security | 1/1 | 0/3 |
| TanStack/queryfix(query-core): fix hydration bugs for already resolved promises | TypeScript · Logic | 1/1 | 0/2 |
| aio-libs/aiohttpkeep websocket compression state across interleaved control frames | Python · Logic | 2/2 | 0/3 |
| better-auth/better-authfix(saml): IdP-Initiated Callback Routing | TypeScript · Security | 1/1 | 0/2 |
| doctrine/ormFix collection filtering API for IN/NOT IN comparisons that require type conversions | PHP · Logic | 2/2 | 0/3 |
| dotnet/orleansfix(serialization): cap codec allocations | C# · Logic | 1/1 | 0/4 |
| duckdb/duckdbFix vsize = 2 issue in JSON create | C++ · Concurrency | 1/1 | 0/3 |
| go-chi/chifeat: middleware.ClientIP, a replacement for middleware.RealIP | Go · Security | 1/1 | 0/3 |
| golang/gocrypto/tls: add LocalCertificate to ConnectionState | Go · Logic | 2/2 | 0/3 |
| groue/GRDB.swiftDatabaseQueue and DatabaseSnapshot reads can access task locals | Swift · Concurrency | 2/2 | 0/2 |
| pinojs/thread-streamrefactor: replace setTimeout with Atomics.waitAsync | JavaScript · Concurrency | 2/2 | 0/4 |
| pointfreeco/swift-composable-architectureRemove child store from parent when invalidated | Swift · Resource handling | 2/2 | 0/4 |
| pointfreeco/swift-navigationUIKit: Fix switch presented child double dismiss | Swift · Logic | 2/2 | 0/4 |
| sindresorhus/p-throttleAdd `weight` option | JavaScript · Logic | 1/1 | 0/3 |
| socketry/asyncBarrier wait in completion order + `Queue#close`. | Ruby · Concurrency | 1/1 | 0/3 |
| tokio-rs/tokiotime: move lazy-registration state into `Sleep` | Rust · Logic | 1/1 | 0/2 |
| traefik/traefikAdd the option to define custom cipher suites for backend serversTransport | Go · API misuse | 1/1 | 0/3 |
| c-ares/c-aresEvent Thread could stall when not notified of new queries on existing connections that are in a bad state | C · Resource handling | 1/2 | 0/4 |
| kotest/kotestFix DataClassEq comparator | Kotlin · Logic | 0/1 | 1/3 |
| kotest/kotestRefactor eventually to ensure wall-clock time usage | Kotlin · Error handling | 0/1 | 3/3 |
| ktorio/ktorKTOR-9171 Redesign ByteReadChannel.readUTF8Line API | Kotlin · Logic | 0/1 | 1/3 |
Defects caught over all runs: a PR reviewed three times with one known bug shows 3/3 when it was caught every time.
Every bug each was scored on: Gemini 3.8 Flash and Gemma 4 26B A4B (Workers AI).