awslabs / aws-mysql-jdbc
Unit Size

The distribution of size of units (measured in lines of code).

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 5,655 units with 50,216 lines of code in units (72.6% of code).
    • 29 very long units (5,132 lines of code)
    • 91 long units (6,005 lines of code)
    • 324 medium size units (9,900 lines of code)
    • 817 small units (11,106 lines of code)
    • 4,394 very small units (18,073 lines of code)
10% | 11% | 19% | 22% | 35%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
java10% | 11% | 19% | 22% | 35%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
src/main/user-impl6% | 10% | 18% | 28% | 35%
src/main/core-api26% | 8% | 15% | 13% | 36%
src/main/core-impl13% | 12% | 20% | 15% | 37%
src/build/java47% | 18% | 14% | 13% | 6%
src/main/protocol-impl2% | 17% | 27% | 16% | 36%
src/main/user-api0% | 0% | 0% | 9% | 90%
src/legacy/java0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public void setObject()
in src/main/core-impl/java/com/mysql/cj/AbstractQueryBindings.java
668 314 4
static
in src/main/core-api/java/com/mysql/cj/conf/PropertyDefinitions.java
480 2 0
static
in src/main/core-api/java/com/mysql/cj/CharsetMapping.java
378 10 0
static
in src/main/core-api/java/com/mysql/cj/exceptions/MysqlErrorNumbers.java
267 1 0
public static void main()
in src/build/java/instrumentation/TranslateExceptions.java
229 1 1
private void getCallStmtParameterTypes()
in src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaData.java
203 53 6
void lex()
in src/main/user-impl/java/com/mysql/cj/xdevapi/ExprParser.java
175 59 0
public boolean configureClientCharacterSet()
in src/main/core-impl/java/com/mysql/cj/NativeSession.java
161 52 1
public ParseInfo()
in src/main/core-api/java/com/mysql/cj/ParseInfo.java
151 61 4
public static final Object escapeSQL()
in src/main/user-impl/java/com/mysql/cj/jdbc/EscapeProcessor.java
146 34 5
void forEach()
in src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaData.java
140 37 1
public ResultSet getColumns()
in src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaDataUsingInfoSchema.java
139 24 4
Expr atomicExpr()
in src/main/user-impl/java/com/mysql/cj/xdevapi/ExprParser.java
138 48 0
public Object getObject()
in src/main/user-impl/java/com/mysql/cj/jdbc/result/ResultSetImpl.java
135 64 1
void forEach()
in src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaData.java
133 34 1
public ResultSet getProcedureColumns()
in src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaDataUsingInfoSchema.java
130 24 4
public void checkUpdatability()
in src/main/user-impl/java/com/mysql/cj/jdbc/result/UpdatableResultSet.java
126 32 0
public static final String getDateTimePattern()
in src/main/core-api/java/com/mysql/cj/util/TimeUtil.java
123 37 2
public ResultSet getFunctionColumns()
in src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaDataUsingInfoSchema.java
119 22 4
public static boolean supportsConvert()
in src/main/core-api/java/com/mysql/cj/MysqlType.java
119 82 2