No description
Find a file
Colin Cross dbf18bec98 Optimize deduplicateOrderOnlyDeps
keyForPhonyCandidate was using sha256, which is a crypto hash and
unnecessarily expensive for this use case.  hash/maphash would be
much faster because it implements WriteString and so doesn't cause
an extra allocation to copy to a byte slice for every write, but it
insists on randomizing the seed, which makes it unsuitable for writing
to the build.ninja file.  Use hash/fnv instead, and use unsafe to
write strings to the hash to avoid the extra allocation.

Also replace the manually rolled parallelism with the existing
parallelVisit, which will reuse goroutines and limit the parallelism
to a useful value.

The hash could collide, and using a 64-bit hash makes that more
likely, so also check the full contents to make sure they are really
equal.

Cuts 1 second off Soong analysis time.

Test: SOONG_PROFILE_MEM=/tmp/mem.pprof m nothing
Change-Id: I4d1292cb158cfc5823a0f4d8b4aeac1d0b10230e
2024-02-02 15:57:26 -08:00
.github/workflows Fix github builds for deprecated set-env and add-path commands (#333) 2020-11-23 16:52:58 -08:00
bootstrap Enforce that providers are not changed 2024-01-30 15:18:24 -08:00
bpfmt bpfmt: Process all blueprint files when a directory is specified 2023-08-04 01:01:55 -07:00
bpmodify bpmodify: Add a set-bool flag to set single boolean values 2022-10-28 18:46:51 +00:00
deptools Make WriteDepFile escape spaces and special characters 2015-04-14 23:34:24 -04:00
gotestmain Support go1.18, drop support for <go1.8 2021-12-14 15:58:35 -08:00
gotestrunner gotestrunner: Make GOROOT absolute before chdir 2017-01-18 14:42:09 -08:00
loadplugins Implement plugins for bootstrap go modules 2015-09-14 15:35:12 -07:00
metrics Add unit test for EventHandler 2023-02-27 11:41:51 -05:00
microfactory apply gofmt 2023-02-21 15:11:20 -05:00
parser bpfmt: Test comment line while sorting arrays 2023-05-17 15:17:49 -07:00
pathtools Remove unnecessary locking in fs 2023-10-31 20:24:35 +00:00
proptools Enforce that providers are not changed 2024-01-30 15:18:24 -08:00
tests Make test_tree_tests.sh slightly easier to read 2017-10-30 15:00:19 -07:00
.gitignore gitignore intelliJ files 2022-02-02 11:36:11 -05:00
.gofmt.sh Use github actions instead of travis 2020-06-15 10:32:10 -07:00
Android.bp Enforce that providers are not changed 2024-01-30 15:18:24 -08:00
CODEOWNERS Add CODEOWNERS: @google/blueprint 2020-10-07 11:57:54 +08:00
context.go Optimize deduplicateOrderOnlyDeps 2024-02-02 15:57:26 -08:00
context_test.go Optimize deduplicateOrderOnlyDeps 2024-02-02 15:57:26 -08:00
CONTRIBUTING.md Add CONTRIBUTING.md file 2015-03-16 00:12:49 -07:00
doc.go apply gofmt 2023-02-21 15:11:20 -05:00
glob.go Speed up globs with sharding 2021-04-15 11:04:11 -07:00
glob_test.go Rename Blueprints to Android.bp . 2021-09-02 11:48:19 +02:00
go.mod Use strings instead of simpleNinjaStrings where possible 2023-11-01 15:15:15 -07:00
levenshtein.go Add name hint to blueprint. 2023-04-10 20:21:15 +00:00
levenshtein_test.go Add name hint to blueprint. 2023-04-10 20:21:15 +00:00
LICENSE Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
live_tracker.go Wrap singleton ninjaString Eval calls 2023-07-11 19:58:01 +00:00
mangle.go Add license headers and LICENSE file 2015-01-23 14:23:27 -08:00
module_ctx.go Optimize returning the zero value from provider APIs 2023-12-14 16:59:19 -08:00
module_ctx_test.go Remove pre singletons 2023-11-01 15:26:17 -07:00
name_interface.go Add name hint to blueprint. 2023-04-10 20:21:15 +00:00
ninja_defs.go Merge "Remove SymlinkOutputs" into main 2024-01-19 19:38:55 +00:00
ninja_strings.go Optimize deduplicateOrderOnlyDeps 2024-02-02 15:57:26 -08:00
ninja_strings_test.go Move name memoization out of variables 2024-01-18 12:28:49 -08:00
ninja_writer.go Move name memoization out of variables 2024-01-18 12:28:49 -08:00
ninja_writer_test.go Use strings instead of simpleNinjaStrings where possible 2023-11-01 15:15:15 -07:00
OWNERS Refactor OWNERS in platform/build/blueprint 2020-10-08 16:23:53 -07:00
package_ctx.go Move name memoization out of variables 2024-01-18 12:28:49 -08:00
PREUPLOAD.cfg Add preupload hooks to build/blueprint 2021-02-23 10:29:46 -08:00
provider.go Enforce that providers are not changed 2024-01-30 15:18:24 -08:00
provider_test.go Use generics for providers API 2023-12-14 16:59:16 -08:00
README.md Update README.md . 2022-10-10 07:06:22 +00:00
scope.go Move name memoization out of variables 2024-01-18 12:28:49 -08:00
singleton_ctx.go Use generics for providers API 2023-12-14 16:59:16 -08:00
source_file_provider.go Use generics for providers API 2023-12-14 16:59:16 -08:00
splice_modules_test.go Maintain ordering between variants and aliases 2020-09-09 18:29:15 -07:00
visit_test.go apply gofmt 2023-02-21 15:11:20 -05:00

Blueprint Build System

Blueprint is part of Soong.

For more information, see build/soong/README.md .