microsoft / bond
File Size

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

Intro
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
File Size Overall
  • There are 374 files with 40,979 lines of code.
    • 1 very long files (1,653 lines of code)
    • 9 long files (5,371 lines of code)
    • 47 medium size files (13,580 lines of codeclsfd_ftr_w_mp_ins)
    • 80 small files (11,514 lines of code)
    • 237 very small files (8,861 lines of code)
4% | 13% | 33% | 28% | 21%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: zoomable circles | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
java20% | 0% | 22% | 36% | 21%
h0% | 21% | 41% | 18% | 18%
hs0% | 20% | 29% | 38% | 11%
cs0% | 10% | 36% | 28% | 24%
yml0% | 0% | 100% | 0% | 0%
cmake0% | 0% | 0% | 63% | 36%
cabal0% | 0% | 0% | 100% | 0%
targets0% | 0% | 0% | 62% | 37%
yaml0% | 0% | 0% | 93% | 6%
ps10% | 0% | 0% | 30% | 69%
py0% | 0% | 0% | 0% | 100%
zsh0% | 0% | 0% | 0% | 100%
groovy0% | 0% | 0% | 0% | 100%
props0% | 0% | 0% | 0% | 100%
cpp0% | 0% | 0% | 0% | 100%
xaml0% | 0% | 0% | 0% | 100%
DotSettings0% | 0% | 0% | 0% | 100%
css0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
java/core21% | 0% | 19% | 37% | 21%
cpp/inc0% | 22% | 39% | 18% | 18%
compiler/src0% | 22% | 32% | 32% | 12%
cs/src0% | 10% | 36% | 28% | 24%
python/inc0% | 0% | 67% | 23% | 8%
java/json0% | 0% | 74% | 22% | 2%
ROOT0% | 0% | 100% | 0% | 0%
compiler0% | 0% | 0% | 93% | 6%
cmake0% | 0% | 0% | 69% | 30%
cs/build0% | 0% | 0% | 36% | 63%
tools/ci-scripts0% | 0% | 0% | 17% | 82%
java/gradle-plugin0% | 0% | 0% | 0% | 100%
tools/release0% | 0% | 0% | 0% | 100%
java/compat0% | 0% | 0% | 0% | 100%
cpp/src0% | 0% | 0% | 0% | 100%
compiler/extra0% | 0% | 0% | 0% | 100%
doc/doxygen0% | 0% | 0% | 0% | 100%
cs0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
StructBondType.java
in java/core/src/main/java/org/bondlib
1653 300
value.h
in cpp/inc/bond/core
826 53
transforms.h
in cpp/inc/bond/core
622 52
reflection.h
in cpp/inc/bond/core
614 10
typeid_value.h
in cpp/inc/bond/core/detail
608 32
compact_binary.h
in cpp/inc/bond/protocol
603 39
hs
Class_java.hs
in compiler/src/Language/Bond/Codegen/Java
535 -
Reflection.cs
in cs/src/core
535 41
hs
TypeMapping.hs
in compiler/src/Language/Bond/Codegen
518 -
CompactBinary.cs
in cs/src/core/protocols
510 58
nullable.h
in cpp/inc/bond/core
488 28
DeserializerTransform.cs
in cs/src/core/expressions
481 12
cmdargs.h
in cpp/inc/bond/core/detail
427 32
hs
Parser.hs
in compiler/src/Language/Bond
426 -
FastBinary.cs
in cs/src/core/protocols
412 54
simple_json_writer.h
in cpp/inc/bond/protocol
401 25
SimpleBinary.cs
in cs/src/core/protocols
394 60
parser.h
in cpp/inc/bond/core
386 13
SimpleJsonReader.java
in java/json/src/main/java/org/bondlib
372 28
converters.h
in python/inc/bond/python
369 10
fast_binary.h
in cpp/inc/bond/protocol
359 26
ObjectParser.cs
in cs/src/core/expressions
341 20
hs
JSON.hs
in compiler/src/Language/Bond/Syntax
340 -
hs
Types_h.hs
in compiler/src/Language/Bond/Codegen/Cpp
338 -
struct.h
in python/inc/bond/python
308 25
IntegerHelper.cs
in cs/src/core/io
307 15
CompactBinaryWriter.java
in java/core/src/main/java/org/bondlib
296 55
blob.h
in cpp/inc/bond/core
285 22
metadata.h
in cpp/inc/bond/core/detail
285 12
SerializerTransform.cs
in cs/src/core/expressions
278 15
stl_containers.h
in cpp/inc/bond/core
267 15
SimpleJsonParser.cs
in cs/src/json/expressions/json
265 16
schema.h
in cpp/inc/bond/core
263 24
CompactBinaryReader.java
in java/core/src/main/java/org/bondlib
262 30
maybe.h
in cpp/inc/bond/core
255 11
rapidjson_helper.h
in cpp/inc/bond/protocol/detail
255 18
unary_call_impl.h
in cpp/inc/bond/ext/grpc/detail
251 22
SimpleBinaryReader.java
in java/core/src/main/java/org/bondlib
246 34
any.h
in cpp/inc/bond/core/detail
242 15
protocol_visitors.h
in cpp/inc/bond/core/detail
242 18
simple_binary.h
in cpp/inc/bond/protocol
241 18
output_buffer.h
in cpp/inc/bond/stream
240 15
FastBinaryReader.java
in java/core/src/main/java/org/bondlib
236 30
validate.h
in cpp/inc/bond/core/detail
235 13
TaggedParser.cs
in cs/src/core/expressions
232 18
SimpleXmlParser.cs
in cs/src/core/expressions/xml
229 17
UntaggedParser.cs
in cs/src/core/expressions
224 20
appveyor.yml
in root
223 -
VarUIntHelper.java
in java/core/src/main/java/org/bondlib
219 10
hs
Util.hs
in compiler/src/Language/Bond/Syntax
218 -
Files With Most Units (Top 20)
File# lines# units
StructBondType.java
in java/core/src/main/java/org/bondlib
1653 300
SimpleBinary.cs
in cs/src/core/protocols
394 60
CompactBinary.cs
in cs/src/core/protocols
510 58
CompactBinaryWriter.java
in java/core/src/main/java/org/bondlib
296 55
FastBinary.cs
in cs/src/core/protocols
412 54
value.h
in cpp/inc/bond/core
826 53
transforms.h
in cpp/inc/bond/core
622 52
Reflection.cs
in cs/src/core
535 41
compact_binary.h
in cpp/inc/bond/protocol
603 39
SimpleXmlWriter.cs
in cs/src/core/protocols
206 34
SimpleBinaryReader.java
in java/core/src/main/java/org/bondlib
246 34
cmdargs.h
in cpp/inc/bond/core/detail
427 32
typeid_value.h
in cpp/inc/bond/core/detail
608 32
CompactBinaryCounter.cs
in cs/src/core/protocols
202 32
CompactBinaryReader.java
in java/core/src/main/java/org/bondlib
262 30
FastBinaryReader.java
in java/core/src/main/java/org/bondlib
236 30
nullable.h
in cpp/inc/bond/core
488 28
SimpleJsonWriter.cs
in cs/src/json/protocols
160 28
SimpleBinaryWriter.java
in java/core/src/main/java/org/bondlib
190 28
SimpleJsonReader.java
in java/json/src/main/java/org/bondlib
372 28
Files With Long Lines (Top 20)

There are 85 files with lines longer than 120 characters. In total, there are 447 long lines.

File# lines# units# long lines
hs
Class_java.hs
in compiler/src/Language/Bond/Codegen/Java
535 - 51
UntaggedReader.cs
in cs/src/core/expressions
90 9 32
ProtocolWriter.cs
in cs/src/core/expressions
140 17 28
TaggedReader.cs
in cs/src/core/expressions
101 14 24
hs
Grpc_cs.hs
in compiler/src/Language/Bond/Codegen/Cs
198 - 19
hs
Grpc_h.hs
in compiler/src/Language/Bond/Codegen/Cpp
189 - 18
StringExpression.cs
in cs/src/core/expressions
63 6 14
DotSettings
cs.sln.DotSettings
in cs
14 - 12
hs
Options.hs
in compiler
146 - 11
StructBondType.java
in java/core/src/main/java/org/bondlib
1653 300 11
hs
TypeMapping.hs
in compiler/src/Language/Bond/Codegen
518 - 10
select_protocol.h
in cpp/inc/bond/core
213 11 10
hs
Types.hs
in compiler/src/Language/Bond/Syntax
203 - 9
AssemblyInfo.cs
in cs/src/reflection/properties
16 - 8
hs
Types_h.hs
in compiler/src/Language/Bond/Codegen/Cpp
338 - 7
targets
Common.targets
in cs/build/nuget
135 - 7
appveyor.yml
in root
223 - 6
value.h
in cpp/inc/bond/core
826 53 6
ObjectParser.cs
in cs/src/core/expressions
341 20 6
AssemblyInfo.cs
in cs/src/core/properties
14 - 6