Sample
int-08831481cfa6-I04
Replace method, parameter, and local names with deterministic ProGuard-style short identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.838 | 0–1; higher is more readable |
| Dorn | 0.741 | 0–1; higher is more readable |
| Mi | 0.049 | 0–1; higher is more readable |
| LLOC | 26 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 4 | 0–20; mean of three runs |
| GPT-6.1 Sol | 13.67 | 0–20; mean of three runs |
| BTTF | 0.561 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 1088.699 | −35.927 |
| Source linesThe number of non-empty source lines. | 61 | +24.4 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 4.331 | −6.496 |
Intercept 8.87 + feature contributions = -9.153 (log-odds).
Score = sigmoid(-9.153) = 0.
| Score | 0.838 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names. | 119 | −1.375 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 55 | +1.165 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 62 | −1.159 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 119 | +1.116 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 60.933 | +0.442 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.056 | +0.395 |
Intercept 0.07 + feature contributions = 1.051 (log-odds).
Score = sigmoid(1.051) = 0.741.
| Score | 0.049 |
|---|
| Score | 26 |
|---|
Run 1
The code suffers from severely obfuscated naming: methods and parameters are single letters (a, b, c, d, e, f), which destroys clarity of intent and reading flow. While the structure is logically organized with a clear constructor and separation of concerns, the action granularity is mixed — some lines perform multiple operations but are not excessively packed. Nesting is flat and acceptable, but code length is slightly redundant due to accessor methods with unclear names. The comments provide some context but cannot compensate for the cryptic identifiers. Overall, the logic is understandable by domain experts, but the naming strategy makes it nearly unreadable for general evaluation. Score is low, not because of structural issues, but because the reader must constantly infer or memorize what each letter means, violating basic readability principles.
Run 2
The code exhibits severe readability issues. Method names (a, b, c, d, e, f) and parameter names (a, b, c) are meaningless, obscuring intent. While the structure is linear and flat, the complete lack of descriptive identifiers makes it extremely difficult to follow. There are also inconsistencies: 'a()' calls Native.ioUringRegisterEnableRings(b()) but 'b()' returns the completion queue's ring fd, which is ambiguous. 'f()' mixes multiple operations (close, exit) with multiple parameters, violating action granularity. The only clarity comes from comments, but they don't compensate for the cryptic naming. The code is concise but at the cost of total opacity. Reading flow is broken because every usage requires cross-referencing to understand what method or variable is being referenced.
Run 3
This code suffers from severely obfuscated naming (methods a, b, c, d, e, f; parameters a, b, c) which destroys clarity of intent and reading flow. While the class structure is logical and nesting is minimal, the single-letter identifiers force readers to constantly cross-reference the constructor and fields to understand even basic functionality. The code length is appropriate and action granularity is mostly one operation per line, but the naming completely undermines readability. The comments provide some context for method 'a', but the method names themselves convey no semantic meaning. This appears to be intentionally obfuscated code, possibly from decompilation or deliberate minification, rather than source code meant for human consumption. For production code, clear method names like 'enableRing', 'getRingFd', 'getFeatures', 'getSubmissionQueue', 'getCompletionQueue', and 'close' would be essential.
Run 1
Code Structure: Fields, initialization, accessors, and lifecycle operations are logically organized into small methods. Nesting: Minimal nesting; the early return in cleanup keeps control flow flat. Clarity of intent: Descriptive field names and enabling comments help, but method names a–f and constructor parameters a–c obscure purpose and require inspecting implementations. Code length: Concise, with little unnecessary code. Action granularity: Each statement generally performs one action, and the long native cleanup call is formatted across lines. Reading flow: Organization and spacing support sequential reading, but opaque method names, the indirect b() call, and numerous positional cleanup arguments interrupt comprehension. The documentation also says 'same method' while the implementation comment specifies 'same thread,' introducing ambiguity.
Run 2
Code Structure: Fields, initialization, accessors, and lifecycle operations are logically organized into small methods. Nesting: Minimal nesting and an early return keep control flow simple. Clarity of intent: Descriptive field names and comments help, but single-letter method names and constructor parameters obscure operations and force readers to inspect implementations. Code length: Concise, with little unnecessary code; the lengthy native cleanup call reflects its required arguments. Action granularity: Each statement performs one action, and native-call arguments are separated onto individual lines. Reading flow: Generally natural, progressing from construction to activation, accessors, and cleanup, but opaque method names such as a(), b(), and f() interrupt understanding. The activation documentation also inconsistently refers to the same method while the implementation comment specifies the same thread.
Run 3
Code Structure: Fields, initialization, accessors, and cleanup are logically organized into small methods. Nesting: Very shallow; the early return in cleanup avoids unnecessary nesting. Clarity of intent: Descriptive field names and comments help, but single-letter method names (a–f) and constructor parameters obscure operations and force readers to inspect implementations. Code length: Concise, with little unnecessary code. Action granularity: Each statement performs one action, and the long native call lists arguments on separate lines. Reading flow: Generally natural, progressing from construction to initialization, accessors, and cleanup, but opaque names interrupt comprehension. The lengthy native call also requires careful tracking of similar queue fields. Overall, structurally readable but substantially weakened by naming.