Sample
int-ac56cb58c4be-I11
Split eligible integer literals into pairs of short-named intermediate variables
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.818 | 0–1; higher is more readable |
| Dorn | 0.541 | 0–1; higher is more readable |
| Mi | 0.26 | 0–1; higher is more readable |
| LLOC | 3 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 17.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs |
| BTTF | 0.695 | 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. | 923.471 | −30.475 |
| Source linesThe number of non-empty source lines. | 31 | +12.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. | 5.188 | −7.782 |
Intercept 8.87 + feature contributions = -16.987 (log-odds).
Score = sigmoid(-16.987) = 0.
| Score | 0.818 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| 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. | 67.875 | +0.79 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 31 | +0.335 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 31 | −0.291 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.094 | +0.032 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 30.928 | +0.022 |
| 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 = 0.165 (log-odds).
Score = sigmoid(0.165) = 0.541.
| Score | 0.26 |
|---|
| Score | 3 |
|---|
Run 1
This code is highly readable. It follows a clear, logical structure: package and imports first, then class-level annotations, then the benchmark parameter and method. Nesting is minimal and the code is flat. The intent is immediately clear — benchmarking NetUtil.getIPv6ByName with various IPv6 addresses. The code is concise, with no unnecessary boilerplate. Each annotation is on its own line, and the benchmark method is a single, straightforward action. The reading flow is natural, moving from setup (threads, warmup, measurement) to parameterized inputs to the benchmark logic. The only minor drawback is the long list of @Param values, but it is well-formatted and easy to scan.
Run 2
The code is highly readable due to its clear structure, minimal nesting, and concise length. The class has a single responsibility with a clear benchmark method. Annotations are used effectively to configure the benchmark without cluttering the logic. The parameter list is well-formatted and easy to scan. The action granularity is appropriate, with one logical operation per line. The reading flow is natural, from imports to annotations to fields to methods. The only minor deductions are the lack of a blank line separating imports from the class declaration and the missing space between method name and opening parenthesis in the @Param values, which slightly disrupts visual consistency. Overall, the code is well-organized and easy to understand.
Run 3
The code is highly readable with a clear structure and purpose. It's a JMH benchmark class with standard annotations, making its intent obvious to developers familiar with benchmarking. Nesting is minimal, the method is concise, and each annotation and parameter is on its own line, respecting action granularity. The reading flow is natural: imports, class annotations, field definition, benchmark method. The only minor deductions are for potential improvement in vertical spacing between annotation groups and the slight verbosity of repeating similar IPv6 strings, but overall this is well-organized, idiomatic Java benchmark code.
Run 1
1. Code Structure: Clearly organized into imports, benchmark configuration, parameter data, and a benchmark method. 2. Nesting: Minimal nesting and no conditional or looping complexity. 3. Clarity of intent: Descriptive class and method names plus JMH annotations make the benchmark's purpose clear; the literal true argument is less self-explanatory. 4. Code length: Concise, with no unnecessary logic or boilerplate. 5. Action granularity: Each annotation, parameter value, and executable statement occupies its own line. 6. Reading flow: Natural progression from configuration to input cases to execution; spacing after the package declaration and between import groups would slightly improve presentation.
Run 2
Code Structure: Imports, benchmark configuration, input parameters, and the benchmark method are logically organized. Nesting: Minimal nesting makes the code easy to scan. Clarity of intent: Descriptive class and method names, JMH annotations, and representative IPv6 inputs clearly convey the benchmark's purpose; the literal true argument is less self-explanatory. Code length: Concise, with no unnecessary logic or duplication. Action granularity: Each declaration and the single method operation occupy separate lines. Reading flow: Configuration naturally leads into test inputs and execution, although a blank line after the package declaration and clearer import grouping would improve visual separation.
Run 3
Code Structure: Clearly organized into imports, benchmark configuration, input parameters, and a single benchmark method. Nesting: Minimal, with no nested control flow. Clarity of intent: Class and method names, JMH annotations, and IPv6 inputs clearly identify the benchmark's purpose; the boolean argument true is less self-explanatory. Code length: Concise, with no unnecessary implementation. Action granularity: Each annotation, declaration, and return statement has a distinct role, with one executable action per line. Reading flow: Natural top-to-bottom progression from configuration to inputs to execution. A blank line after the package declaration and grouping Java imports before other imports would slightly improve presentation.