CARVIEW |
Select Language
HTTP/2 301
date: Sun, 27 Jul 2025 09:16:22 GMT
content-length: 0
location: https://github.com/dotnet/android/pull/2128
server-timing: nginx;desc="NGINX";dur=1.149769,glb;desc="GLB";dur=101.031843
x-voltron-version: a2eb102
vary: Accept-Encoding, Accept, X-Requested-With
server: github.com
x-frame-options: DENY
strict-transport-security: max-age=31536000; includeSubDomains; preload
set-cookie: _gh_sess=D6mNzcPpqMdIK27hvdCmkZMoMuW4EambPNNpQT4andHoe4TAqaXbpRr25THe4FmqCZ3NgSPPfLGFID3eGTfpODDgEFzhpMsuhj46K9SS4L%2B2d%2BUkTc7FhknDz81uhVSIvKvUVp0I39IbOxWRoNGIqZG2M2WHwI%2BG%2F%2B9LZRGy9CAAbwGtcc8mhU2oksh3TdTt5LvzKyNu%2FUuUC0jFLvb0y89equ3aoD4ASQo4QlhPrWWwkIv0J%2FBYTJdJPj054OPQNnu3S%2F5r7hj7NkJmBL7ddA%3D%3D--ASlLRHW00X4%2Fk2wk--TFwl%2FWKkqmAsPS00Va6clA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1299672209.1753607781; Path=/; Domain=github.com; Expires=Mon, 27 Jul 2026 09:16:21 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Mon, 27 Jul 2026 09:16:21 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: AF52:29FD1F:C9D086:10B9331:6885EE65
HTTP/2 200
date: Sun, 27 Jul 2025 09:16:22 GMT
content-type: text/html; charset=utf-8
cache-control: no-cache
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
referrer-policy: no-referrer-when-downgrade
server-timing: pull_request_layout-fragment;desc="pull_request_layout fragment";dur=293.779694,conversation_content-fragment;desc="conversation_content fragment";dur=549.127036,conversation_sidebar-fragment;desc="conversation_sidebar fragment";dur=262.899623,nginx;desc="NGINX";dur=1.199433,glb;desc="GLB";dur=199.278412
strict-transport-security: max-age=31536000; includeSubdomains; preload
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-content-type-options: nosniff
x-frame-options: deny
x-voltron-version: a2eb102
x-xss-protection: 0
server: github.com
content-encoding: gzip
accept-ranges: bytes
x-github-request-id: AF52:29FD1F:C9D09C:10B9355:6885EE65
[Xamarin.Android.Build.Tasks] _CopyIntermediateAssemblies uses CopyIfChanged by jonathanpeppers · Pull Request #2128 · dotnet/android · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 555
[Xamarin.Android.Build.Tasks] _CopyIntermediateAssemblies uses CopyIfChanged #2128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
dellis1972
merged 1 commit into
dotnet:master
from
jonathanpeppers:copyintermediateassemblies
Sep 3, 2018
Merged
[Xamarin.Android.Build.Tasks] _CopyIntermediateAssemblies uses CopyIfChanged #2128
dellis1972
merged 1 commit into
dotnet:master
from
jonathanpeppers:copyintermediateassemblies
Sep 3, 2018
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…Changed Context: dotnet#2088 970da9e was a good step towards "correctness" in building incrementally in the following scenario: - File | New Xamarin.Forms project | NetStandard library - Build - Change XAML - Build In this scenario, there is now a new target rising to the surface we can improve: 276 ms _CopyIntermediateAssemblies 1 calls Looking at the target, it seems we could use the `CopyIfChanged` task here more effectively. This task will automaticaly set the timestamps of files that have been copied, and so we don't need any subsequent `<ItemGroup />` or `<Touch />` elements. It was also touching *all* files instead of just the ones that were changed. After this change: 33 ms _CopyIntermediateAssemblies 1 calls The overall build went from 7.058s to 6.652s, so there must be some other targets that benefit from the timestamps not changing on *all* of these files.
Build logs here: CopyIntermediateAssemblies.zip |
dellis1972
approved these changes
Sep 3, 2018
jonathanpeppers
added a commit
to jonathanpeppers/xamarin-android
that referenced
this pull request
Oct 16, 2018
Context: dotnet#2247 Context: dotnet#2128 The `_CopyIntermediateAssemblies` target has a bug for incremental builds, reproduced by the following: - Build a Xamarin.Android app project - `touch` the project's assembly in `$(IntermediateOutputPath)` - Build a second time. `_CopyIntermediateAssemblies` will run as expected. - Build a third time. `_CopyIntermediateAssemblies` will still run! When in this state, `_CopyIntermediateAssemblies` will always run. This is bad because it triggers other expensive targets like `_UpdateAndroidResgen` _every time_. I believe I introduced this in dotnet#2128, which was when I saw `_CopyIntermediateAssemblies` taking more time than it used to. It was a good tradeoff though, since it prevented `_UpdateAndroidResgen` from running too often. 15.9 does not have dotnet#2128. To fix this problem properly, I introduced a new `_copyintermediate.stamp` file to be used as the `Outputs` of the target. In addition to fixing our incremental build here, there should be performance gains in only verifying the timestamp of one file in `Outputs`. The `Inputs` of the `_CopyIntermediateAssemblies` were also incorrect, as it was not using the "satellite" assembly files as an input. This does not fully complete dotnet#2247, as there are two other targets listed I need to investigate further. These are likely unrelated to the changes in dotnet#2128.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
You can’t perform that action at this time.
Context: #2088
970da9e was a good step towards "correctness" in building
incrementally in the following scenario:
In this scenario, there is now a new target rising to the surface we
can improve:
Looking at the target, it seems we could use the
CopyIfChanged
taskhere more effectively. This task will automaticaly set the timestamps
of files that have been copied, and so we don't need any subsequent
<ItemGroup />
or<Touch />
elements. It was also touching allfiles instead of just the ones that were changed.
After this change:
The overall build went from 7.058s to 6.652s, so there must be some
other targets that benefit from the timestamps not changing on all
of these files.