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.

Reply via email to