facebook / redex
File Age

File age measurements show the distribution of file ages (days since the first commit) and the recency of file updates (days since the latest commit).

Summary
  • Number of files: 914
  • Daily file updates (only one update per file and date counted): 2255
  • First update: 2016-03-25
  • Latest update: 2022-04-01
  • Days between first and latest update: 2198 (314 weeks, estimated 1570 working days)
  • Active days (at least one file change): 1566
  • Data:
File Change History Overall
File Age Distribution Overall
Days since first update
  • There are 913 files with 194,961 lines of code in files.
    • 830 files that are 366+ days old (181,151 lines of code)
    • 52 files that are 181-365 days old (8,965 lines of code)
    • 26 files that are 91-180 days old (3,378 lines of code)
    • 5 files that are 31-90 days old (1,467 lines of code)
    • 0 files that are 1-30 days old (0 lines of code)
92% | 4% | 1% | <1% | 0%
Legend:
366+
181-365
91-180
31-90
1-30

explore: zoomable circles
Latest Change Distribution Overall
Days since last update
  • There are 913 files with 194,961 lines of code in files.
    • 38 files have been last changed 366+ days ago (4,813 lines of code)
    • 4 files have been last changed 181-365 days ago (1,052 lines of code)
    • 627 files have been last changed 91-180 days ago (90,194 lines of code)
    • 146 files have been last changed 31-90 days ago (44,873 lines of code)
    • 98 files have been last changed 1-30 days ago (54,029 lines of code)
2% | <1% | 46% | 23% | 27%
Legend:
366+
181-365
91-180
31-90
1-30

explore: zoomable circles
File Change History per File Extension
cpp, h, java, xml, py, pro, txt, sh, md, kt, m4, json, gradle, js, yml, cmake, cfg, proto, inc, gitignore, clang-format, properties, css, dockerignore, in, s, pl, clang-tidy
File Age Distribution per Extension
Days since first update
366+
181-365
91-180
31-90
1-30
cpp92% | 4% | 1% | 1% | 0%
h95% | 2% | 1% | <1% | 0%
py95% | 4% | 0% | 0% | 0%
cmake100% | 0% | 0% | 0% | 0%
js100% | 0% | 0% | 0% | 0%
inc100% | 0% | 0% | 0% | 0%
css100% | 0% | 0% | 0% | 0%
java100% | 0% | 0% | 0% | 0%
in100% | 0% | 0% | 0% | 0%
proto0% | 100% | 0% | 0% | 0%
Latest Change Distribution per Extension
Days since last update
366+
181-365
91-180
31-90
1-30
h6% | 0% | 55% | 21% | 16%
cpp1% | 0% | 40% | 24% | 33%
py<1% | <1% | 89% | 10% | 0%
proto0% | 78% | 21% | 0% | 0%
cmake0% | 57% | 42% | 0% | 0%
js0% | 0% | 59% | 40% | 0%
inc0% | 0% | 100% | 0% | 0%
java0% | 0% | 100% | 0% | 0%
in0% | 0% | 100% | 0% | 0%
css0% | 0% | 0% | 100% | 0%
File Change History per Logical Decomposition
primary
primary (file age distribution)
Days since first update
366+
181-365
91-180
31-90
1-30
libredex93% | 5% | <1% | <1% | 0%
opt90% | 3% | 2% | 2% | 0%
service91% | 6% | 2% | 0% | 0%
tools99% | <1% | 0% | 0% | 0%
libresource96% | 0% | 3% | 0% | 0%
sparta100% | 0% | 0% | 0% | 0%
ROOT100% | 0% | 0% | 0% | 0%
shared96% | 0% | 0% | 3% | 0%
pyredex79% | 20% | 0% | 0% | 0%
util100% | 0% | 0% | 0% | 0%
cmake_modules100% | 0% | 0% | 0% | 0%
analysis100% | 0% | 0% | 0% | 0%
website100% | 0% | 0% | 0% | 0%
liblocator100% | 0% | 0% | 0% | 0%
java100% | 0% | 0% | 0% | 0%
proto0% | 100% | 0% | 0% | 0%
primary (latest change distribution)
Days since last update
366+
181-365
91-180
31-90
1-30
libresource35% | 0% | 1% | 2% | 61%
tools<1% | <1% | 83% | 1% | 14%
proto0% | 78% | 21% | 0% | 0%
cmake_modules0% | 65% | 34% | 0% | 0%
opt0% | 0% | 53% | 26% | 20%
libredex0% | 0% | 32% | 24% | 42%
service0% | 0% | 45% | 38% | 15%
sparta0% | 0% | 100% | 0% | 0%
pyredex0% | 0% | 100% | 0% | 0%
util0% | 0% | 100% | 0% | 0%
shared0% | 0% | 29% | 70% | 0%
ROOT0% | 0% | 30% | 69% | 0%
analysis0% | 0% | 100% | 0% | 0%
liblocator0% | 0% | 100% | 0% | 0%
website0% | 0% | 47% | 52% | 0%
java0% | 0% | 100% | 0% | 0%
Oldest Files (Top 50)
File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
redex.py
in root
996 28 70 2212 186 44
DexOutput.cpp
in libredex
2485 67 16 2211 169 39
main.cpp
in tools/redex-all
1258 28 16 2209 228 44
InterDex.cpp
in opt/interdex
1062 24 30 2209 113 33
InterDex.h
in opt/interdex
179 8 56 2209 61 22
ProguardMap.cpp
in libredex
575 40 16 2208 47 21
ReBindRefs.cpp
in opt/rebindrefs
251 12 31 2208 48 18
Trace.cpp
in libredex
201 7 108 2208 31 15
Resolver.cpp
in libredex
155 1 108 2208 23 11
PassManager.cpp
in libredex
1107 51 15 2207 148 30
Synth.cpp
in opt/synth
883 20 108 2207 68 25
594 22 108 2207 96 30
FinalInline.cpp
in opt/final_inline
569 20 74 2207 77 25
DelInit.cpp
in opt/delinit
479 16 66 2207 50 22
DelSuper.cpp
in opt/delsuper
263 6 17 2207 39 18
SingleImplAnalyze.cpp
in opt/singleimpl
440 18 57 2206 54 16
Shorten.cpp
in opt/shorten-srcstrings
129 4 108 2206 26 15
SingleImpl.cpp
in opt/singleimpl
122 4 34 2206 34 17
SingleImplDefs.h
in opt/singleimpl
115 3 34 2198 28 13
1094 130 108 2193 11 9
Warning.cpp
in libredex
38 2 108 2193 5 4
AnnoKill.cpp
in opt/annokill
667 8 31 2192 52 20
825 83 29 2190 40 15
Peephole.cpp
in opt/peephole
1480 59 108 2187 71 29
Bridge.cpp
in opt/bridge
354 14 108 2187 53 21
ConfigFiles.cpp
in libredex
299 12 57 2187 68 25
RemoveEmptyClasses.cpp
in opt/remove_empty_classes
131 7 72 2187 40 17
AnnoKill.h
in opt/annokill
110 5 32 2187 25 13
FinalInline.h
in opt/final_inline
58 1 108 2187 24 14
SingleImpl.h
in opt/singleimpl
37 1 108 2187 15 11
Synth.h
in opt/synth
18 1 108 2187 18 14
Peephole.h
in opt/peephole
16 1 108 2187 14 9
Shorten.h
in opt/shorten-srcstrings
13 1 108 2187 13 9
ReBindRefs.h
in opt/rebindrefs
13 2 108 2187 16 10
DelInit.h
in opt/delinit
12 1 108 2187 11 9
DelSuper.h
in opt/delsuper
8 - 108 2187 11 9
Bridge.h
in opt/bridge
7 - 108 2187 10 8
RemoveEmptyClasses.h
in opt/remove_empty_classes
7 - 108 2187 8 7
JarLoader.cpp
in libredex
780 19 16 2186 34 18
DexOpcode.cpp
in libredex
469 15 108 2186 29 11
DexClass.cpp
in libredex
1906 117 16 2185 144 33
Show.cpp
in libredex
1568 66 66 2185 99 25
1110 40 108 2185 44 14
Creators.cpp
in libredex
658 36 56 2185 67 22
103 7 108 2185 14 9
Transform.cpp
in libredex
93 8 63 2185 104 23
Vinfo.cpp
in libredex
58 4 108 2185 9 7
SynthConfig.h
in opt/synth
17 - 108 2171 8 7
ResourceTypes.cpp
in libresource
6041 157 17 2164 27 10
RedexContext.cpp
in libredex
512 19 15 2164 74 23
Files Not Recently Changed (Top 50)
File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
Static.cpp
in libresource
22 - 1245 1246 2 2
Debug.h
in libresource/utils
22 - 1245 1246 2 2
thread_defs.h
in libresource/system
24 - 1245 1246 2 2
Unicode.h
in libresource/utils
29 - 1245 1246 2 2
ThreadDefs.h
in libresource/utils
35 - 1245 1246 2 2
asset_manager.h
in libresource/android
38 - 1245 1246 2 2
FileMap.h
in libresource/utils
46 2 1245 1632 3 3
TypeWrappers.cpp
in libresource
49 - 1245 1632 3 3
TypeWrappers.h
in libresource/androidfw
50 3 1245 1246 2 2
Thread.h
in libresource/utils
52 - 1245 1246 2 2
SharedBuffer.h
in libresource/utils
58 5 1245 1246 2 2
ByteBucketArray.h
in libresource/androidfw
61 2 1245 1246 2 2
AndroidThreads.h
in libresource/utils
61 3 1245 1246 2 2
Timers.h
in libresource/utils
62 15 1245 1632 3 3
graphics.h
in libresource/system
66 - 1245 1246 2 2
RWLock.h
in libresource/utils
83 13 1245 1246 2 2
SharedBuffer.cpp
in libresource
84 3 1245 1632 3 3
Mutex.h
in libresource/utils
90 11 1245 1246 2 2
Condition.h
in libresource/utils
98 8 1245 1246 2 2
VectorImpl.h
in libresource/utils
103 2 1245 1246 2 2
Asset.h
in libresource/androidfw
108 10 1245 2158 3 3
KeyedVector.h
in libresource/utils
131 12 1245 1632 3 3
StrongPointer.h
in libresource/utils
145 10 1245 1246 2 2
FileMap.cpp
in libresource
152 3 1245 2156 4 4
SortedVector.h
in libresource/utils
163 20 1245 1632 3 3
String16.h
in libresource/utils
164 4 1245 1246 2 2
String8.h
in libresource/utils
237 11 1245 1632 3 3
Vector.h
in libresource/utils
240 39 1245 1632 4 4
String16.cpp
in libresource
343 17 1245 1632 3 3
RefBase.h
in libresource/utils
380 24 1245 1702 5 3
String8.cpp
in libresource
507 34 1245 1632 3 3
VectorImpl.cpp
in libresource
528 39 904 1632 6 6
atomic.h
in libresource/cutils
1 - 636 636 1 1
__init__.py
in tools/reachability-analysis/lib
1 - 636 1275 2 2
ByteOrder.h
in libresource/utils
41 2 626 1632 4 4
Compat.h
in libresource/utils
43 2 626 1632 4 4
Errors.h
in libresource/utils
48 - 626 1632 4 4
Unicode.cpp
in libresource
448 24 626 2164 5 5
proto
162 - 324 324 1 1
cmake
FindJsonCpp.cmake
in cmake_modules
370 - 323 1661 3 3
__init__.py
in tools/callgraph-analysis/corelib
1 - 296 296 1 1
proto
519 - 204 324 2 2
134 - 121 637 18 7
log.h
in libresource/cutils
1 - 108 1390 3 2
__init__.py
in pyredex
1 - 108 2088 5 5
DexDefs.cpp
in shared
1 - 108 1512 4 3
RedexTool.h
in tools/redex-tool
2 - 108 1872 4 3
Thread.h
in libredex
2 - 108 890 4 4
5 - 108 1084 3 2
CheckCastConfig.h
in opt/remove_redundant_check_casts
6 - 108 732 2 2
Most Recently Created Files (Top 50)
File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
threads.h
in libresource/utils
11 -
22 1 57 57 1 1
13 1 57 57 1 1
57 - 60 60 1 1
ObjectEscapeAnalysis.cpp
in opt/object-escape-analysis
1368 26 24 77 5 1
ObjectEscapeAnalysis.h
in opt/object-escape-analysis
7 - 77 77 1 1
Visitor.cpp
in libresource
456 28 21 98 3 1
Visitor.h
in libresource/utils
84 3 58 98 2 1
DefinitelyAssignedIFields.cpp
in service/constant-propagation
281 9 99 107 2 1
DefinitelyAssignedIFields.h
in service/constant-propagation
9 - 99 107 2 1
ShrinkerPass.cpp
in opt/shrinker
98 2 66 121 4 2
ShrinkerPass.h
in opt/shrinker
11 - 108 121 2 2
191 5 48 123 3 3
188 6 48 123 3 3
ResolveMethodRefs.cpp
in service/type-analysis
84 2 30 146 3 3
ResolveMethodRefs.h
in service/type-analysis
21 - 108 146 2 2
KotlinObjectInliner.cpp
in opt/kotlin-lambda
499 7 108 147 2 2
KotlinObjectInliner.h
in opt/kotlin-lambda
31 1 108 147 2 2
152 10 108 151 4 2
32 - 108 151 4 2
8 - 108 151 3 2
InitClassLoweringPass.cpp
in opt/init-classes
369 10 108 161 2 2
InitClassesWithSideEffects.cpp
in service/init-classes
113 - 108 161 2 2
InitClassBackwardAnalysis.h
in service/init-classes
45 3 108 161 2 2
InitClassLoweringPass.h
in opt/init-classes
13 - 108 161 2 2
AppModuleUsage.cpp
in opt/app_module_usage
381 11 48 175 16 4
InitClassPruner.cpp
in service/init-classes
86 3 108 175 3 2
InitClassForwardAnalysis.h
in service/init-classes
81 7 108 175 3 2
AppModuleUsage.h
in opt/app_module_usage
54 1 57 175 12 4
InitClassDomain.h
in service/init-classes
34 1 108 175 2 2
InitClassesWithSideEffects.h
in service/init-classes
30 - 108 175 3 2
InitClassPruner.h
in service/init-classes
27 - 108 175 3 2
BridgeSynthInlinePass.cpp
in opt/methodinline
13 1 108 188 2 2
BridgeSynthInlinePass.h
in opt/methodinline
8 - 108 188 2 2
proto
config.proto
in proto
187 - 108 204 2 2
PartialApplication.cpp
in opt/partial-application
1041 24 91 232 10 3
PartialApplication.h
in opt/partial-application
12 - 108 232 2 2
ModelSpecGenerator.cpp
in opt/class-merging
200 5 64 237 5 3
IntraDexClassMergingPass.cpp
in opt/class-merging
61 2 16 237 5 3
42 4 108 237 2 2
ModelSpecGenerator.h
in opt/class-merging
25 - 108 237 3 2
IntraDexClassMergingPass.h
in opt/class-merging
14 - 108 237 2 2
ConfigUtils.cpp
in service/class-merging
35 2 108 238 2 2
ConfigUtils.h
in service/class-merging
11 - 108 238 2 2
buck.py
in pyredex
130 20 108 239 5 2
OutliningProfileGuidanceImpl.cpp
in service/method-outliner
215 2 99 244 3 2
OutliningProfileGuidanceImpl.h
in service/method-outliner
44 - 99 244 3 2
OutliningProfileGuidance.h
in service/method-outliner
19 - 108 244 2 2
CallSiteSummaries.cpp
in service/method-inliner
287 4 70 247 6 3
CallSiteSummaries.h
in service/method-inliner
80 1 108 247 3 2
Most Recently Changed Files (Top 50)
File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
threads.h
in libresource/utils
11 -
ApkResources.cpp
in libredex
1356 76 14 324 19 6
Serialize.cpp
in libresource
618 34 14 1589 13 5
BuilderAnalysis.cpp
in opt/builder_pattern
437 14 14 884 14 7
RemoveBuilderPattern.cpp
in opt/builder_pattern
356 13 14 884 21 7
Serialize.h
in libresource/utils
247 28 14 1589 10 6
BuilderTransform.cpp
in opt/builder_pattern
218 6 14 884 17 8
ApkResources.h
in libredex
185 3 14 324 17 4
BuilderAnalysis.h
in opt/builder_pattern
49 5 14 884 8 5
BuilderTransform.h
in opt/builder_pattern
35 - 14 884 11 6
PassManager.cpp
in libredex
1107 51 15 2207 148 30
RedexContext.cpp
in libredex
512 19 15 2164 74 23
391 7 15 336 10 3
DexOutput.cpp
in libredex
2485 67 16 2211 169 39
DexClass.cpp
in libredex
1906 117 16 2185 144 33
main.cpp
in tools/redex-all
1258 28 16 2209 228 44
1256 50 16 324 18 5
Model.cpp
in service/class-merging
1219 37 16 651 39 5
DexClass.h
in libredex
950 71 16 2093 160 38
JarLoader.cpp
in libredex
780 19 16 2186 34 18
Instrument.cpp
in opt/instrument
747 16 16 1410 80 17
Reachability.cpp
in libredex
668 41 16 1312 49 15
ProguardMap.cpp
in libredex
575 40 16 2208 47 21
DexLoader.cpp
in libredex
507 11 16 2102 48 19
DexUtil.cpp
in libredex
398 22 16 2099 105 37
DexOutput.h
in libredex
339 21 16 2093 62 25
DiffMethodSizes.cpp
in tools/redex-tool
296 9 16 1866 20 11
Model.h
in service/class-merging
265 14 16 651 32 6
ToolsCommon.cpp
in tools/common
254 15 16 1332 31 13
RedexContext.h
in libredex
229 11 16 2093 65 23
ClassMergingPass.cpp
in opt/class-merging
227 6 16 627 23 5
Creators.h
in libredex
213 16 16 2093 53 18
main.cpp
in tools/redex-opt
188 5 16 1326 16 6
InjectDebug.cpp
in tools/bytecode_debugger
159 6 16 794 11 5
RedexResources.h
in libredex
153 4 16 2093 44 17
Tool.cpp
in tools/tool
153 6 16 1710 20 13
81 1 16 324 14 4
ProguardMap.h
in libredex
66 3 16 2093 26 15
IntraDexClassMergingPass.cpp
in opt/class-merging
61 2 16 237 5 3
AnonymousClassMergingPass.cpp
in opt/class-merging
61 2 16 538 15 4
DexLoader.h
in libredex
48 - 16 2093 19 12
JarLoader.h
in libredex
29 - 16 2093 15 11
ToolUtil.h
in tools/tool
22 1 16 1395 6 5
ResourceTypes.cpp
in libresource
6041 157 17 2164 27 10
VirtualMerging.cpp
in opt/virtual_merging
1386 27 17 1047 47 10
ResourceTypes.h
in libresource/androidfw
957 4 17 1688 17 7
SourceBlocks.cpp
in libredex
902 33 17 406 18 4
IRAssembler.cpp
in libredex
867 23 17 1644 51 13
IRList.cpp
in libredex
836 43 17 1526 46 17
IRList.h
in libredex
507 55 17 1526 54 14