microsoft / ELL
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 906 files with 128,010 lines of code.
    • 11 very long files (15,514 lines of code)
    • 37 long files (25,154 lines of code)
    • 122 medium size files (37,522 lines of codeclsfd_ftr_w_mp_ins)
    • 179 small files (25,167 lines of code)
    • 557 very small files (24,653 lines of code)
12% | 19% | 29% | 19% | 19%
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
cpp21% | 23% | 27% | 15% | 11%
py16% | 17% | 31% | 14% | 20%
h0% | 16% | 31% | 25% | 26%
i0% | 27% | 16% | 19% | 36%
xslt0% | 0% | 100% | 0% | 0%
cmake0% | 0% | 0% | 62% | 37%
cmd0% | 0% | 0% | 67% | 32%
gyp0% | 0% | 0% | 100% | 0%
in0% | 0% | 0% | 12% | 87%
yml0% | 0% | 0% | 0% | 100%
js0% | 0% | 0% | 0% | 100%
yaml0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
libraries/value37% | 16% | 23% | 11% | 10%
libraries/emitters20% | 21% | 26% | 12% | 20%
tools/importers45% | 11% | 34% | 3% | 6%
interfaces/common23% | 22% | 24% | 13% | 15%
libraries/dsp43% | 0% | 19% | 22% | 15%
libraries/nodes6% | 18% | 35% | 26% | 13%
tools/utilities0% | 25% | 28% | 22% | 23%
libraries/math0% | 86% | 5% | 3% | 4%
libraries/model0% | 31% | 24% | 28% | 15%
libraries/utilities0% | 24% | 28% | 25% | 21%
libraries/predictors0% | 0% | 44% | 22% | 32%
libraries/data0% | 0% | 54% | 9% | 35%
libraries/trainers0% | 0% | 43% | 26% | 30%
libraries/optimization0% | 0% | 34% | 24% | 41%
libraries/common0% | 0% | 33% | 16% | 49%
libraries/model_testing0% | 0% | 72% | 27% | 0%
tools/wrap0% | 0% | 77% | 0% | 22%
tools/trainers0% | 0% | 35% | 37% | 26%
libraries/emittable_functions0% | 0% | 58% | 0% | 41%
interfaces/javascript0% | 0% | 59% | 32% | 8%
libraries/evaluators0% | 0% | 45% | 0% | 54%
libraries/passes0% | 0% | 29% | 56% | 14%
CMake0% | 0% | 0% | 62% | 37%
interfaces/python0% | 0% | 0% | 42% | 57%
libraries/testing0% | 0% | 0% | 100% | 0%
scripts0% | 0% | 0% | 93% | 6%
libraries/functions0% | 0% | 0% | 0% | 100%
scripts/CI0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
LLVMContext.cpp
in libraries/value/src
1942 68
IRFunctionEmitter.cpp
in libraries/emitters/src
1619 210
onnx_converters.py
in tools/importers/onnx/lib
1577 184
ModelBuilderInterface.cpp
in interfaces/common/src
1565 66
ComputeContext.cpp
in libraries/value/src
1471 63
CppEmitterContext.cpp
in libraries/value/src
1471 57
CachingStrategies.cpp
in libraries/value/src
1289 22
WinogradConvolution.cpp
in libraries/dsp/src
1269 59
WinogradConvolutionNode.cpp
in libraries/nodes/src
1209 47
IREmitter.cpp
in libraries/emitters/src
1075 70
converters.py
in tools/importers/common
1027 138
IRModuleEmitter.cpp
in libraries/emitters/src
971 73
ModelInterface.cpp
in interfaces/common/src
945 106
BroadcastFunctionNode.h
in libraries/nodes/include
928 59
Tensor.h
in libraries/math/include
891 93
VectorOperations.h
in libraries/math/include
883 70
rnn.py
in tools/utilities/pythonlibs/audio/training
854 81
Variant.h
in libraries/utilities/include
836 88
LoopNestVisitor.cpp
in libraries/value/src/loopnests
804 23
MatrixOperations.h
in libraries/math/include
753 51
ModelUtils.cpp
in tools/utilities/finetune/src
738 31
train_classifier.py
in tools/utilities/pythonlibs/audio/training
721 34
BinaryConvolutionalLayerNode.cpp
in libraries/nodes/src
712 27
LoopNest.cpp
in libraries/value/src/loopnests
709 58
IRMapCompiler.cpp
in libraries/model/src
676 32
Map.cpp
in libraries/model/src
656 56
Model.cpp
in libraries/model/src
652 46
BinaryOperationNode.h
in libraries/nodes/include
647 38
PortElements.cpp
in libraries/model/src
640 40
cntk_layers.py
in tools/importers/CNTK/lib
634 64
MemoryLayout.cpp
in libraries/utilities/src
631 52
ModelComparison.cpp
in tools/utilities/debugCompiler/src
631 33
Matrix.h
in libraries/math/include
628 53
IRRuntime.cpp
in libraries/emitters/src
623 52
DataUtils.cpp
in tools/utilities/finetune/src
621 36
IRHeaderWriter.cpp
in libraries/emitters/src
617 19
EmitterContext.cpp
in libraries/value/src
615 103
Archiver.h
in libraries/utilities/include
606 42
FFTNode.cpp
in libraries/nodes/src
585 32
i
model_python_post.i
in interfaces/common
582 -
KernelPredicate.cpp
in libraries/value/src/loopnests
578 27
BroadcastOperationNodes.h
in libraries/nodes/include
573 31
FineTuneModel.cpp
in tools/utilities/finetune/src
571 26
IRFunctionEmitter.h
in libraries/emitters/include
554 29
view_audio.py
in tools/utilities/pythonlibs/audio
548 39
Vector.h
in libraries/math/include
524 30
CommandLineParser.cpp
in libraries/utilities/src
515 23
ModelTransformer.cpp
in libraries/model/src
502 44
ProtoNNTrainer.cpp
in libraries/trainers/src
487 18
BinaryConvolutionalLayer.h
in libraries/predictors/neural/include
476 15
Files With Most Units (Top 20)
File# lines# units
IRFunctionEmitter.cpp
in libraries/emitters/src
1619 210
onnx_converters.py
in tools/importers/onnx/lib
1577 184
converters.py
in tools/importers/common
1027 138
ModelInterface.cpp
in interfaces/common/src
945 106
EmitterContext.cpp
in libraries/value/src
615 103
Tensor.h
in libraries/math/include
891 93
Variant.h
in libraries/utilities/include
836 88
symbolic.py
in libraries/dsp/py
329 81
rnn.py
in tools/utilities/pythonlibs/audio/training
854 81
IRModuleEmitter.cpp
in libraries/emitters/src
971 73
IREmitter.cpp
in libraries/emitters/src
1075 70
VectorOperations.h
in libraries/math/include
883 70
LLVMContext.cpp
in libraries/value/src
1942 68
ModelBuilderInterface.cpp
in interfaces/common/src
1565 66
NodeOperations.h
in libraries/nodes/include
460 64
cntk_layers.py
in tools/importers/CNTK/lib
634 64
ComputeContext.cpp
in libraries/value/src
1471 63
EmitterTypes.cpp
in libraries/emitters/src
441 62
WinogradConvolution.cpp
in libraries/dsp/src
1269 59
BroadcastFunctionNode.h
in libraries/nodes/include
928 59
Files With Long Lines (Top 20)

There are 484 files with lines longer than 120 characters. In total, there are 5198 long lines.

File# lines# units# long lines
CachingStrategies.cpp
in libraries/value/src
1289 22 248
WinogradConvolution.cpp
in libraries/dsp/src
1269 59 218
ModelBuilderInterface.cpp
in interfaces/common/src
1565 66 176
VectorOperations.h
in libraries/math/include
883 70 166
Tensor.h
in libraries/math/include
891 93 150
MatrixOperations.h
in libraries/math/include
753 51 140
WinogradConvolutionNode.cpp
in libraries/nodes/src
1209 47 113
IRFunctionEmitter.cpp
in libraries/emitters/src
1619 210 97
BroadcastFunctionNode.h
in libraries/nodes/include
928 59 94
TensorOperations.h
in libraries/math/include
239 15 60
IRModelProfiler.cpp
in libraries/model/src
444 32 60
ModelUtils.cpp
in tools/utilities/finetune/src
738 31 54
GenerateTestModels.cpp
in tools/utilities/profile/src
398 19 53
BinaryConvolutionalLayerNode.cpp
in libraries/nodes/src
712 27 52
Matrix.h
in libraries/math/include
628 53 51
LoopNestVisitor.cpp
in libraries/value/src/loopnests
804 23 49
BinaryOperationNode.h
in libraries/nodes/include
647 38 47
NeuralNetworkPredictorInterface.cpp
in interfaces/common/src
425 16 45
IRModuleEmitter.cpp
in libraries/emitters/src
971 73 44
FineTuneModel.cpp
in tools/utilities/finetune/src
571 26 44