The perf hit is the first time that pre-dex is run correct? (So it only makes sense to disable this when a clean builds are run in sequence, like a CI server, disabling it on the first build after a clean would just move the time out to the second build?)
On Tuesday, January 28, 2014 9:56:21 PM UTC-8, Xavier Ducrohet wrote: > > pre-dexing is useful when you recompile after a code change in your > project only. All your dependencies are pre-dexed and only need to be > merged in when your project's code is dexed. > > So yes there is a performance hit on the first build as pre-dexing is > slower than just running dex on the whole code, but incremental changes > should compile faster. > > When a library code changes only that library is redexed and then remerged > in the final dex. > > I would recommend that for cases where you only do full build (on a CI > server for instance), you disable pre-dexing through an env var to get the > best performance and keep pre-dexing on when doing dev work. > > > On Tue, Jan 28, 2014 at 7:02 PM, Benjamin Cooley > <[email protected]<javascript:> > > wrote: > >> Xavier, what is the value of predexing? is it for the incremental dex's? >> (I ask because we still see a performance degradation with predexing on vs >> off) >> >> >> On Thursday, January 23, 2014 2:22:03 PM UTC-8, Xavier Ducrohet wrote: >> >>> Requires: >>> Gradle 1.10 >>> Studio 0.4.3 >>> Build Tools 19.0.0+ >>> >>> New features and fixes: >>> - Fixed issue 64302: Add renderscript support mode jar to the >>> dependencies in the IDE model. >>> - Fixed issue 64094: buildConfigField can now replace previous values >>> inside the same type/flavors. >>> - Add support for NDK prebuilts in library projects. >>> - Parallelize pre-dexing to speed up clean builds. >>> - Incremental dexing re-enabled (though it'll be automatically disabled >>> in some builds for some cases that dx doesn't support yet.) >>> - Added 'provided' dependency scope for compile only (not packaged) >>> dependencies. >>> Additional scope per buildtype and flavors are also available >>> (debugProvided, myFlavorProvided,etc...) >>> - Lint improvements: >>> * New "lintVital" task, run automatically as part of assembling >>> release variants, which checks only fatal-severity issues >>> * Replace Java parser in lint with ECJ; must faster and fixes bug >>> where lint could hang on certain source constructs >>> * Lint HTML report now writes links to source files and images as >>> URLs relative to the report location >>> - Variant API improvements: >>> * getPreBuild() returns the prebuild task for the variant >>> * getSourceSets() returns the sorted sourcesets for the task, from >>> lower to higher priority >>> * createZipAlignTask(String taskName, File inputFile, File outputFile) >>> This creates and return a new zipalign task. Useful if you have a >>> custom plugin providing custom signing of APKs. >>> This also makes the assemble task depend on the new zipalign task, >>> and wires variant.getOutputFile() to return the result of the zipalign task. >>> * project.android.registerJavaArtifact() now receives a >>> Configuration object to pass the dependencies to the IDE. See artifactApi >>> sample. >>> >>> >>> -- >>> Xavier Ducrohet >>> Android SDK Tech Lead >>> Google Inc. >>> http://developer.android.com | http://tools.android.com >>> >>> Please do not send me questions directly. Thanks! >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "adt-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > > > -- > Xavier Ducrohet > Android SDK Tech Lead > Google Inc. > http://developer.android.com | http://tools.android.com > > Please do not send me questions directly. Thanks! > -- You received this message because you are subscribed to the Google Groups "adt-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
