Sample
int-0b971dcec00e-SRC
Unmodified source class
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.006 | 0–1; higher is more readable |
| Scalabrino | 0.761 | 0–1; higher is more readable |
| Dorn | 0.842 | 0–1; higher is more readable |
| Mi | 0.699 | 0–1; higher is more readable |
| LLOC | 7 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 18 | 0–20; mean of three runs |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs |
| BTTF | 0.7 | 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. | 553.182 | −18.255 |
| Source linesThe number of non-empty source lines. | 28 | +11.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.646 | −6.97 |
Intercept 8.87 + feature contributions = -5.155 (log-odds).
Score = sigmoid(-5.155) = 0.006.
| Score | 0.761 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 76.966 | +0.437 |
| 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. | 76.897 | +0.408 |
| 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.072 | +0.244 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 25 | +0.128 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 27.705 | −0.023 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 29 | +0.01 |
Intercept 0.07 + feature contributions = 1.672 (log-odds).
Score = sigmoid(1.672) = 0.842.
| Score | 0.699 |
|---|
| Score | 7 |
|---|
Run 1
The code is highly readable. It has a clear, logical structure with imports, class declaration, and concise method overrides. Nesting is minimal, with no nested blocks or conditionals. Each method expresses a single intent: reading data, flushing, and handling exceptions. Code length is appropriate for an echo handler — no unnecessary boilerplate. Action granularity is well-maintained, with one action per line (e.g., `ctx.write(msg)` and `cause.printStackTrace()`). Reading flow is natural: the class is named clearly, methods are ordered logically, and the Javadoc comment explains the class purpose. Minor deduction for the inline comment in `exceptionCaught` being slightly redundant, but overall the code is nearly exemplary.
Run 2
The code is highly readable due to its simple, logical structure. It follows a standard handler pattern with clear method overrides. Nesting is minimal, and each method performs a single, well-defined action, enhancing clarity of intent. The reading flow is natural, with methods ordered in a typical lifecycle sequence. However, the score is slightly reduced by the use of printStackTrace() in the exception handler, which is generally discouraged for production code and could be replaced with proper logging. Overall, the code is concise, flat, and easy to understand.
Run 3
This code is highly readable. It has a clear, logical structure with one class and three overridden methods, each performing a distinct function. Nesting is minimal—only a single class level. Intent is explicit: an SCTP echo server handler that writes messages back, flushes, and closes on exceptions. Code length is concise and appropriate for its purpose. Each method body contains one or two actions per line, maintaining good action granularity. Reading flow is natural: channelRead writes, channelReadComplete flushes, and exceptionCaught handles errors. Naming follows Java conventions, and the comments clarify non-obvious parts like exception handling. Minor deductions: the imported package order is slightly unconventional (first import after package line), but this is negligible. Overall, it is well-structured, flat, and easy to understand.
Run 1
Code Structure: Clearly organized into three focused event-handler methods. Nesting: Flat, with no conditional blocks or nested control flow. Clarity of intent: The class name, documentation, and overridden method names clearly convey an SCTP echo handler; understanding the separate write and flush operations requires basic Netty knowledge. Code length: Concise, with no unnecessary logic or repetition. Action granularity: Each statement performs one action, making execution easy to follow. Reading flow: Methods progress naturally from receiving data to completing reads and handling exceptions. A blank line between the package declaration and imports would slightly improve formatting.
Run 2
Code Structure: The class is logically organized into three focused event-handler methods. Nesting: There is no nested control flow, making the code easy to scan. Clarity of intent: The class name, documentation, and straightforward write, flush, and close calls clearly express an SCTP echo handler; understanding callback timing requires some Netty familiarity. Code length: The implementation is concise without unnecessary logic. Action granularity: Each statement performs one action on its own line. Reading flow: Methods follow a natural progression from receiving data to completing reads and handling errors. A blank line between the package declaration and imports would slightly improve visual separation.
Run 3
Code Structure: Clearly organized into three focused event-handler methods. Nesting: Flat control flow with no nested logic. Clarity of intent: The class name, documentation, and straightforward operations clearly communicate an SCTP echo handler; the write/flush separation assumes some familiarity with Netty. Code length: Concise, with no unnecessary implementation. Action granularity: Each statement performs a single action on its own line. Reading flow: Methods follow a natural sequence from receiving data to completing reads and handling exceptions. A blank line between the package declaration and imports would slightly improve visual organization.