Sample
int-5369ac84518a-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.764 | 0–1; higher is more readable |
| Dorn | 0.811 | 0–1; higher is more readable |
| Mi | 0.315 | 0–1; higher is more readable |
| LLOC | 5 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 6.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 12.67 | 0–20; mean of three runs |
| BTTF | 0.643 | 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. | 1438.566 | −47.473 |
| Source linesThe number of non-empty source lines. | 38 | +15.2 |
| 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.436 | −6.654 |
Intercept 8.87 + feature contributions = -30.056 (log-odds).
Score = sigmoid(-30.056) = 0.
| Score | 0.764 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 86 | +0.583 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 37 | +0.543 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 39 | −0.345 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 37.966 | +0.121 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.091 | +0.061 |
| 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. | 86 | +0.023 |
Intercept 0.07 + feature contributions = 1.453 (log-odds).
Score = sigmoid(1.453) = 0.811.
| Score | 0.315 |
|---|
| Score | 5 |
|---|
Run 1
The code has a clear overall structure and follows standard Java patterns, but readability is significantly reduced by poor variable naming (a, b, c, d, e, f, g, h, i, j, k, l) that obscures intent. The constructor parameters are cryptic, requiring readers to infer their meaning from the super call. Nesting is minimal and action granularity is fine, but the lack of self-documenting names forces unnecessary cognitive load. The comments within the constructor are slightly helpful but insufficient. The overridden methods have short, unclear names. Overall, the code is not tangled but fails on clarity of intent due to obfuscated identifiers.
Run 2
The code suffers from poor readability due to extremely abbreviated parameter names (a, b, c, d, e, f, g, h, i, j) that obscure intent, making it difficult to understand what each argument represents without referring to the parent class. The constructor has 11 parameters packed into a single call, reducing clarity and action granularity. Method names a() and b() are meaningless and fail to convey their purpose ('create query' and 'protocol name' respectively). While the structure is logically organized and nesting is flat, the heavy reliance on single-letter identifiers significantly hampers reading flow. The code is concise but at the cost of clarity — the minimal length does not compensate for the loss of self-documenting quality. Import statements are standard, and the class hierarchy is clear, but overall maintainability suffers from these naming choices.
Run 3
The code is structurally sound but severely undermined by non-descriptive identifiers. Parameters named 'a' through 'j' and methods 'a(int k, InetSocketAddress l)' and 'b()' make the intent opaque without external documentation. The constructor accepts 10 positional parameters, requiring line-by-line reference to the parent class to understand what each value represents. While nesting is flat and actions are granular, those strengths are negated by a complete loss of clarity and natural reading flow. The class name and package convey TCP DNS context, and the one-line comment about no retry is helpful, but the method overrides provide zero semantic information. Meaningful names like 'channel', 'nameServerAddress', 'queryTimeoutMillis', or 'newQuery(...)' would dramatically increase readability. As written, every reader must memorize or inspect the parameter list to work with this class.
Run 1
Code Structure: The small class is logically organized into a constructor and two overridden methods, though unused imports add clutter. Nesting: There is no nested control flow, making the code easy to scan. Clarity of intent: The class name, DNS types, TCP string, and comment indicate its purpose, but single-letter parameter and method names obscure individual responsibilities and constructor arguments. Code length: The implementation is concise, although the long constructor signature and positional superclass call require effort to interpret. Action granularity: Each statement performs one action; there are no compressed multi-action lines. Reading flow: Constructor-first organization and short methods provide a natural flow, but understanding the superclass call requires repeatedly mapping anonymous parameters to their types.
Run 2
Code Structure: The small class is logically organized into a constructor and two overrides, though unused imports add clutter. Nesting: There is no deeply nested logic, making the code easy to scan. Clarity of intent: The class name, types, TCP string, and retry comment provide context, but single-letter method and parameter names obscure responsibilities and make the long superclass argument list difficult to interpret. Code length: The implementation is concise, with little unnecessary code beyond the unused imports. Action granularity: Each statement performs one action, although several parameters and arguments share lines. Reading flow: The constructor-to-overrides ordering is natural, but opaque identifiers and positional argument mapping interrupt comprehension.
Run 3
Code Structure: A small, logically organized class with a constructor and two overrides. Nesting: Flat, with no nested control flow. Clarity of intent: The class name, TCP label, and retry comment communicate its role, but single-letter parameter and method names obscure individual responsibilities and the superclass arguments. Code length: Concise, although several imports are unused. Action granularity: Each statement performs one action; grouping multiple parameters on some lines slightly reduces scanability. Reading flow: Constructor-first organization and consistent indentation make navigation straightforward, but interpreting the long superclass call requires external context.