Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b983ceac authored by Colin Cross's avatar Colin Cross Committed by Gerrit Code Review
Browse files

Merge "Shard srcjars when sharding javac compilation" into main

parents e4bb4d4e a052ddbb
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -1343,11 +1343,18 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
					jars = append(jars, classes)
				}
			}
			// Assume approximately 5 sources per srcjar.
			// For framework-minus-apex in AOSP at the time this was written, there are 266 srcjars, with a mean
			// of 5.8 sources per srcjar, but a median of 1, a standard deviation of 10, and a max of 48 source files.
			if len(srcJars) > 0 {
				classes := j.compileJavaClasses(ctx, jarName, len(shardSrcs),
					nil, srcJars, flags, extraJarDeps)
				startIdx := len(shardSrcs)
				shardSrcJarsList := android.ShardPaths(srcJars, shardSize/5)
				for idx, shardSrcJars := range shardSrcJarsList {
					classes := j.compileJavaClasses(ctx, jarName, startIdx+idx,
						nil, shardSrcJars, flags, extraJarDeps)
					jars = append(jars, classes)
				}
			}
		} else {
			classes := j.compileJavaClasses(ctx, jarName, -1, uniqueJavaFiles, srcJars, flags, extraJarDeps)
			jars = append(jars, classes)