From 86ba0364991d38af683cb7e3e99c0f4ea213b3fe Mon Sep 17 00:00:00 2001 From: mbshields Date: Wed, 11 Oct 2023 20:08:32 -0700 Subject: [PATCH] docs: add Developer document for Performance Profiling in zot (#128) * docs: add Developer document for Performance Profiling in zot Signed-off-by: mbshields * docs: rebase and add profiling to What's New Signed-off-by: mbshields * docs: address initial comments Signed-off-by: mbshields * docs: address additional comments Signed-off-by: mbshields * docs: address additional comments - spellcheck Signed-off-by: mbshields * docs: added performance profiling to What's New Signed-off-by: mbshields * docs: remove duplicated entry in What's New Signed-off-by: mbshields --------- Signed-off-by: mbshields --- .wordlist.txt | 11 + docs/admin-guide/admin-configuration.md | 10 +- docs/articles/pprofiling.md | 129 + docs/assets/images/pprof-view.jpg | Bin 0 -> 46033 bytes docs/assets/images/profile001.png | Bin 0 -> 22450 bytes docs/assets/images/profiling-flame.svg | 15285 ++++++++++++++++++++++ docs/developer-guide/onboarding.md | 6 + docs/general/whats-new.md | 4 + mkdocs.yml | 1 + 9 files changed, 15444 insertions(+), 2 deletions(-) create mode 100644 docs/articles/pprofiling.md create mode 100644 docs/assets/images/pprof-view.jpg create mode 100644 docs/assets/images/profile001.png create mode 100644 docs/assets/images/profiling-flame.svg diff --git a/.wordlist.txt b/.wordlist.txt index 2da719b..8a30b43 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -1,3 +1,4 @@ +allocs amd apache API @@ -24,6 +25,7 @@ CI cli CLI ClusterIP +cmdline CNAME CNCF codebase @@ -33,6 +35,7 @@ ConfigMap conformant containerd CPUs +cpu credentialsFile cri CRI @@ -68,6 +71,9 @@ GitHub gitlab GitLab golang +golang's +goroutine +goroutines GPG graphQL gui @@ -112,6 +118,8 @@ mgmt minify mkdocs mTLS +mutex +mutexes myfile natively ng @@ -135,6 +143,7 @@ plaintext png podman pollInterval +pprof PR PRs prometheus @@ -177,6 +186,7 @@ substring subtree subtrees systemd +threadcreate TLS tlsVerify tmp @@ -194,6 +204,7 @@ trustStores tunable twemoji UI +unrecovered unreviewed uri URI diff --git a/docs/admin-guide/admin-configuration.md b/docs/admin-guide/admin-configuration.md index 8ee201e..e100243 100644 --- a/docs/admin-guide/admin-configuration.md +++ b/docs/admin-guide/admin-configuration.md @@ -314,11 +314,15 @@ zot supports a range of monitoring tools including the following: * Metrics - Metrics data is available in a Prometheus format. A full zot image with extensions includes a node exporter. A minimal zot image can use an external node exporter such as `zxp`. + Metrics data is available in a Prometheus format. A full zot image with extensions includes a node exporter. A minimal zot image can use an external node exporter such as `zxp`. * Benchmarking - The zot project includes the `zb` tool, which allows you to benchmark a zot registry or any other container image registry that conforms to the [OCI Distribution Specification](https://github.com/opencontainers/distribution-spec). + The zot project includes the `zb` tool, which allows you to benchmark a zot registry or any other container image registry that conforms to the [OCI Distribution Specification](https://github.com/opencontainers/distribution-spec). + +* Performance profiling + + Performance profiling capabilities within zot allow a zot [administrator](../articles/authn-authz.md) to collect and export a range of diagnostic performance data such as CPU intensive function calls, memory allocations, and execution traces. The collected data can then be analyzed using Go tools and a variety of available visualization tools. When zot is deployed in a Kubernetes setup, a site reliability engineering (SRE) operator can monitor service level indicators (SLI) such as metrics and logs. Metrics will appear in [Prometheus](https://prometheus.io/docs/guides/query-log/) using the zot `metrics` extension, while logs will appear in the Elasticsearch stack ([ELK stack](https://www.elastic.co/what-is/elk-stack)) using [Filebeat](https://www.elastic.co/beats/filebeat). @@ -326,6 +330,8 @@ For detailed information about the monitoring tools, see [Monitoring the registr For detailed information about benchmarking, see [Benchmarking zot with zb](../articles/benchmarking-with-zb.md). +For detailed information about performance profiling, see [Performance Profiling in zot](../articles/pprofiling.md). + ## Clustering zot diff --git a/docs/articles/pprofiling.md b/docs/articles/pprofiling.md new file mode 100644 index 0000000..65c72b3 --- /dev/null +++ b/docs/articles/pprofiling.md @@ -0,0 +1,129 @@ +# Performance Profiling in zot + +> :point_right: Use zot's built-in profiling tools to collect and analyze runtime performance. + +The profiling capabilities within zot allow a zot [administrator](../articles/authn-authz.md) to collect and export a range of diagnostic performance data such as CPU intensive function calls, memory allocations, and execution traces. The collected data can then be analyzed using Go tools and a variety of available visualization tools. + +> :pencil2: If authentication is enabled, only a zot admin user can access the APIs for profiling. +> +> :pencil2: All examples in this article assume that the zot registry is running at `localhost:8080`. + +## What data is available? + +The zot source code incorporates [golang's pprof package](https://pkg.go.dev/runtime/pprof) of runtime analysis tools to collect data for the following performance-related profiles: + +| Profile | Description | +| ------- | --------- | +| allocs | A sampling of all past memory allocations. | +| block | Stack traces that led to blocking on synchronization primitives. | +| cmdline | The command line invocation of the current program. | +| goroutine| Stack traces of all current goroutines. Use `debug=2` as a URL query parameter to export in the same format as an unrecovered panic. | +| heap | A sampling of memory allocations of live objects. You can specify the `gc` GET parameter to run GC before taking the heap sample. | +| mutex | Stack traces of holders of contended mutexes. | +| profile | CPU usage profile. You can specify the duration in the `seconds` URL query parameter. After receiving the profile file, use the `go tool pprof` command to investigate the profile. | +| threadcreate | Stack traces that led to the creation of new OS threads. | +| trace | A trace of execution of the current program. You can specify the duration in the `seconds` URL query parameter. After you get the trace file, use the `go tool trace` command to investigate the trace. | + +To return a current HTML-format profile list along with a count of currently available records for each profile, use the following API command: + + /v2/_zot/pprof/ + +> :pencil2: If authentication is enabled, only an admin user can access this API. + +## How do I export profile data? + +To collect and export any available profile, use the following API command format: + + /v2/_zot/pprof/[?] + +The following example shows an API request for the CPU usage profile named `profile` using a collection window of 30 seconds: + + $ curl -s http://localhost:8080/v2/_zot/pprof/profile?seconds=30 > cpu.prof + +This command example creates an output data file named "cpu.prof". + +- The query parameter `?seconds=` specifies the number of seconds to gather the profile data. If this parameter is not specified, the default is 30 seconds. +- In this example, the raw output data is redirected to a file named "cpu.prof". Alternatively, you can use `curl -O` to create a file with the default profile name (in this case, "profile"). If no output file is specified by either a cURL flag or an output redirection, the cURL command fails with "Failure writing output to destination". +- The command output file is in a machine-readable format that can be interpreted by performance analyzers. + + +## Analyzing the CPU usage profile using `go tool pprof` + +Go's pprof package provides a variety of presentation formats for analyzing runtime performance. + +For detailed information, see the [pprof documentation](https://pkg.go.dev/runtime/pprof). + + +### Generating a pprof web presentation + +When an HTTP port is specified as a command flag, the `go tool pprof` command installs and opens a local web server that provides a web interface for viewing and analyzing the profile data. This example opens a localhost page at port 9090 for viewing the CPU usage data captured in the profile file named "cpu.prof". + + $ go tool pprof -http=:9090 cpu.prof + Serving web UI on http://localhost:9090 + +The pprof web view offers several options for viewing and interpreting the collected performance data. Select VIEW to see the available options: + +![pprof-view.jpg](../assets/images/pprof-view.jpg){width="300"} + +A Flame Graph can be very useful for analyzing CPU usage: + +![profiling-flame.svg](../assets/images/profiling-flame.svg){width="300"} + + +### Generating a graphic image + +The pprof package can generate graphic representations of profile data in many formats. This example generates a PNG file representing the CPU usage in the "cpu.prof" file. + + $ go tool pprof -png cpu.prof + Generating report in profile001.png + +![profile001.png](../assets/images/profile001.png){width="300"} + + +### Opening a pprof interactive session + +This example opens an interactive session with pprof and executes the pprof `top` command, which displays the top ten modules by CPU usage during the profiling capture window. + + $ go tool pprof cpu.prof + Type: cpu + Time: Sep 26, 2023 at 10:01am (PDT) + Duration: 30s, Total samples = 10ms ( 0.1%) + Entering interactive mode (type "help" for commands, "o" for options) + (pprof) top + Showing nodes accounting for 10ms, 100% of 10ms total + flat flat% sum% cum cum% + 10ms 100% 100% 10ms 100% runtime.pthread_cond_signal + 0 0% 100% 10ms 100% runtime.findRunnable + 0 0% 100% 10ms 100% runtime.mcall + 0 0% 100% 10ms 100% runtime.notewakeup + 0 0% 100% 10ms 100% runtime.park_m + 0 0% 100% 10ms 100% runtime.runSafePointFn + 0 0% 100% 10ms 100% runtime.schedule + 0 0% 100% 10ms 100% runtime.semawakeup + (pprof) + + +## Analyzing the trace profile using `go tool trace` + +You can collect trace data with the `trace` profile, as in this example: + + $ curl -s -v http://localhost:8080/v2/_zot/pprof/trace?seconds=30 > trace.prof + +Using the `go tool trace` package, you can analyze the trace data captured in the "trace.prof" example file: + + $ go tool trace trace.prof + 2023/09/21 16:58:58 Parsing trace... + 2023/09/21 16:58:58 Splitting trace... + 2023/09/21 16:58:58 Opening browser. Trace viewer is listening on http://127.0.0.1:62606 + +The `go tool trace` command installs and opens a local web server that provides a web interface for viewing and analyzing the trace data. + +As an alternative, you can generate a pprof-like profile from the trace file using the following command: + + $ go tool trace -pprof=[net|sync|syscall|sched] + +For example: + + $ go tool trace -pprof=net trace.prof + + diff --git a/docs/assets/images/pprof-view.jpg b/docs/assets/images/pprof-view.jpg new file mode 100644 index 0000000000000000000000000000000000000000..79d1106693b17c97d948ab495adcb688cb4e0186 GIT binary patch literal 46033 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/profile001.png b/docs/assets/images/profile001.png new file mode 100644 index 0000000000000000000000000000000000000000..094d72f38cd43e0b0117ddfe9ff6ab2985d0b563 GIT binary patch literal 22450 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
  • KdY+- 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/profiling-flame.svg b/docs/assets/images/profiling-flame.svg new file mode 100644 index 0000000..ef8eb49 --- /dev/null +++ b/docs/assets/images/profiling-flame.svg @@ -0,0 +1,15285 @@ + + + + + + + + + + + + + + +Flame Graph + +Reset Zoom +Search +ic + + + +os.statNolog.func1 (60 samples, 0.60%) + + + +runtime.slicebytetostring (4 samples, 0.04%) + + + +reflect.Value.Interface (2 samples, 0.02%) + + + +encoding/json.(*decodeState).literalStore (222 samples, 2.22%) +e.. + + +reflect.Value.Addr (1 samples, 0.01%) + + + +path.(*lazybuf).append (42 samples, 0.42%) + + + +github.com/aquasecurity/trivy-db/pkg/types.(*Advisory).UnmarshalJSON (1 samples, 0.01%) + + + +runtime.newobject (26 samples, 0.26%) + + + +runtime.unlockWithRank (3 samples, 0.03%) + + + +runtime.arenaIdx.l2 (1 samples, 0.01%) + + + +runtime.slicebytetostring (9 samples, 0.09%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.PaginatedRepoMeta2RepoSummaries (2,705 samples, 27.10%) +zotregistry.io/zot/pkg/extensions/search/co.. + + +cmpbody (1 samples, 0.01%) + + + +runtime.evacuate_faststr (7 samples, 0.07%) + + + +cmpbody (3 samples, 0.03%) + + + +reflect.MakeMapWithSize (6 samples, 0.06%) + + + +runtime.mcall (115 samples, 1.15%) + + + +runtime.growslice (2 samples, 0.02%) + + + +internal/poll.(*FD).decref (1 samples, 0.01%) + + + +internal/poll.ignoringEINTRIO (10 samples, 0.10%) + + + +memeqbody (2 samples, 0.02%) + + + +runtime.spanOfHeap (1 samples, 0.01%) + + + +runtime.getLockRank (1 samples, 0.01%) + + + +regexp.(*inputString).step (7 samples, 0.07%) + + + +reflect.Value.Type (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.mallocgc (4 samples, 0.04%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +reflect.(*rtype).Name (1 samples, 0.01%) + + + +time.norm (2 samples, 0.02%) + + + +encoding/json.(*decodeState).value (107 samples, 1.07%) + + + +runtime.forEachG (1 samples, 0.01%) + + + +reflect.resolveTypeOff (2 samples, 0.02%) + + + +runtime.casgstatus (1 samples, 0.01%) + + + +runtime.mallocgc (24 samples, 0.24%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +sync.(*Pool).Get (14 samples, 0.14%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func24 (1 samples, 0.01%) + + + +syscall.ByteSliceFromString (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.getitab (1 samples, 0.01%) + + + +net/http.serveContent (1 samples, 0.01%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +reflect.(*rtype).Elem (1 samples, 0.01%) + + + +runtime.mallocgc (19 samples, 0.19%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +runtime.heapBitsSetType (7 samples, 0.07%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.growslice (2 samples, 0.02%) + + + +reflect.(*rtype).NumMethod (1 samples, 0.01%) + + + +runtime.exitsyscall (1 samples, 0.01%) + + + +os.(*File).Readdirnames (1 samples, 0.01%) + + + +memeqbody (2 samples, 0.02%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.writeHeapBits.write (2 samples, 0.02%) + + + +runtime.mallocgc (5 samples, 0.05%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetAnnotationValue (3 samples, 0.03%) + + + +reflect.unsafe_New (3 samples, 0.03%) + + + +runtime.slicebytetostring (1 samples, 0.01%) + + + +runtime.callers (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +reflect.Value.Set (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +runtime.(*gcControllerState).removeIdleMarkWorker (4 samples, 0.04%) + + + +runtime.gcWriteBarrierBX (1 samples, 0.01%) + + + +runtime.(*itabTableType).find (3 samples, 0.03%) + + + +runtime.casgstatus (1 samples, 0.01%) + + + +runtime.(*sysMemStat).add (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (1 samples, 0.01%) + + + +runtime.futex (2 samples, 0.02%) + + + +runtime.(*mheap).initSpan (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +reflect.(*rtype).nameOff (2 samples, 0.02%) + + + +runtime.(*mcentral).cacheSpan (2 samples, 0.02%) + + + +runtime.mapaccess1_faststr (7 samples, 0.07%) + + + +runtime.pcvalue (1 samples, 0.01%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executableSchema).Exec.func1 (3 samples, 0.03%) + + + +runtime.mallocgc (41 samples, 0.41%) + + + +reflect.flag.mustBeExported (3 samples, 0.03%) + + + +reflect.directlyAssignable (1 samples, 0.01%) + + + +encoding/json.cachedTypeFields (4 samples, 0.04%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1 (4,930 samples, 49.40%) +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1 + + +fmt.(*fmt).init (1 samples, 0.01%) + + + +runtime.(*stkframe).getStackMap (7 samples, 0.07%) + + + +runtime.memmove (6 samples, 0.06%) + + + +runtime.(*gcWork).put (1 samples, 0.01%) + + + +runtime.memmove (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*DB).allocate (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.getBlob (1 samples, 0.01%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.notesleep (1 samples, 0.01%) + + + +runtime.(*gcControllerState).findRunnableGCWorker.func1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.scanManifest (8 samples, 0.08%) + + + +sync.(*Pool).pin (4 samples, 0.04%) + + + +encoding/json.stateBeginString (2 samples, 0.02%) + + + +sort.symMerge (4 samples, 0.04%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetLicenses (6 samples, 0.06%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.ScanImage (3 samples, 0.03%) + + + +runtime.writeHeapBits.flush (2 samples, 0.02%) + + + +reflect.Value.SetMapIndex (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.SessionAuditLogger.func1.1 (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +regexp.(*Regexp).MatchString (66 samples, 0.66%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.findObject (1 samples, 0.01%) + + + +reflect.(*rtype).nameOff (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (450 samples, 4.51%) +encod.. + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.MissingBlobs.func1 (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint64).Load (1 samples, 0.01%) + + + +runtime.unlockWithRank (1 samples, 0.01%) + + + +strconv.FormatInt (5 samples, 0.05%) + + + +zotregistry.io/zot/pkg/extensions/search/cve.BaseCveInfo.GetCVESummaryForImageMedia (2 samples, 0.02%) + + + +runtime.(*sysMemStat).add (1 samples, 0.01%) + + + +runtime.(*mheap).initSpan (3 samples, 0.03%) + + + +runtime.casgstatus (1 samples, 0.01%) + + + +runtime.(*gcControllerState).findRunnableGCWorker (6 samples, 0.06%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +syscall.Syscall (3 samples, 0.03%) + + + +runtime.systemstack (2 samples, 0.02%) + + + +sort.StringSlice.Swap (4 samples, 0.04%) + + + +runtime.resetspinning (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search.(*queryResolver).GlobalSearch (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/extensions/search.(*queryResolver).GlobalSearch + + +runtime.makeslice (2 samples, 0.02%) + + + +runtime.unlockWithRank (1 samples, 0.01%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +sort.Search (5 samples, 0.05%) + + + +zotregistry.io/zot/pkg/api.BaseAuthzHandler.func1.1 (3 samples, 0.03%) + + + +runtime.(*gcBits).bitp (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy-db/pkg/db.Config.forEach.func1 (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (1 samples, 0.01%) + + + +runtime.lock2 (2 samples, 0.02%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +fmt.Sprintf (146 samples, 1.46%) + + + +runtime.(*mcentral).uncacheSpan (1 samples, 0.01%) + + + +sort.StringSlice.Less (6 samples, 0.06%) + + + +sync.(*Map).loadReadOnly (1 samples, 0.01%) + + + +encoding/json.(*decodeState).scanNext (2 samples, 0.02%) + + + +runtime.getitab (3 samples, 0.03%) + + + +runtime.mProf_Malloc (1 samples, 0.01%) + + + +sort.Search (9 samples, 0.09%) + + + +github.com/opencontainers/go-digest.Algorithm.Validate (2 samples, 0.02%) + + + +reflect.unpackEface (2 samples, 0.02%) + + + +runtime.writeHeapBits.write (2 samples, 0.02%) + + + +encoding/json.checkValid (524 samples, 5.25%) +encodi.. + + +runtime.mapaccess1_faststr (13 samples, 0.13%) + + + +encoding/json.isSpace (2 samples, 0.02%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.ifaceeq (1 samples, 0.01%) + + + +runtime.(*mheap).initSpan (1 samples, 0.01%) + + + +runtime.futexsleep (1 samples, 0.01%) + + + +runtime.findObject (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.makeslice (15 samples, 0.15%) + + + +reflect.ifaceIndir (1 samples, 0.01%) + + + +runtime.putempty (1 samples, 0.01%) + + + +reflect.PointerTo (1 samples, 0.01%) + + + +runtime.releasem (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.MissingBlobs.func1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Walk (2,906 samples, 29.12%) +zotregistry.io/zot/pkg/storage/local.(*Driver).. + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +sync.(*Map).loadReadOnly (6 samples, 0.06%) + + + +github.com/aquasecurity/trivy/pkg/scanner/local.Scanner.scanVulnerabilities (1 samples, 0.01%) + + + +reflect.Value.Type (1 samples, 0.01%) + + + +runtime.gcDrainN (1 samples, 0.01%) + + + +runtime.(*mheap).initSpan (2 samples, 0.02%) + + + +fmt.(*pp).printArg (8 samples, 0.08%) + + + +syscall.fcntl (1 samples, 0.01%) + + + +runtime.(*mcentral).uncacheSpan (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.nextFreeFast (2 samples, 0.02%) + + + +reflect.(*rtype).String (4 samples, 0.04%) + + + +encoding/json.(*decodeState).readIndex (2 samples, 0.02%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +runtime.(*mspan).init (1 samples, 0.01%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +encoding/json.(*decodeState).array (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +reflect.(*rtype).nameOff (1 samples, 0.01%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +encoding/json.stateEndValue (2 samples, 0.02%) + + + +syscall.ReadDirent (7 samples, 0.07%) + + + +reflect.(*rtype).Name (2 samples, 0.02%) + + + +fmt.(*pp).fmtString (5 samples, 0.05%) + + + +encoding/json.(*decodeState).value (877 samples, 8.79%) +encoding/jso.. + + +encoding/json.stateBeginValue (3 samples, 0.03%) + + + +regexp.lazyFlag.match (4 samples, 0.04%) + + + +reflect.Value.assignTo (1 samples, 0.01%) + + + +runtime.slicebytetostring (23 samples, 0.23%) + + + +zotregistry.io/zot/pkg/common.CORSHeadersMiddleware.func1.1 (3 samples, 0.03%) + + + +os.direntNamlen (1 samples, 0.01%) + + + +runtime.writeHeapBits.write (1 samples, 0.01%) + + + +sort.symMerge (5 samples, 0.05%) + + + +reflect.Value.IsValid (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Bucket).spill (1 samples, 0.01%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +runtime.(*gcBits).bitp (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (6 samples, 0.06%) + + + +aeshashbody (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Stat (13 samples, 0.13%) + + + +runtime.add (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (2 samples, 0.02%) + + + +os.readInt (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/scanner.Scanner.ScanArtifact (2 samples, 0.02%) + + + +regexp.(*Regexp).doExecute (629 samples, 6.30%) +regexp.(.. + + +runtime.(*mspan).initHeapBits (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.(*mspan).objIndex (1 samples, 0.01%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (9 samples, 0.09%) + + + +runtime.pcdatavalue (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/common.CORSHeadersMiddleware.func1.1 (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/common.CORSHeadersMiddleware.func1.1 + + +runtime.(*mcentral).grow (3 samples, 0.03%) + + + +syscall.SetNonblock (2 samples, 0.02%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +encoding/json.(*decodeState).scanNext (1 samples, 0.01%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +syscall.fcntl (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (3 samples, 0.03%) + + + +runtime.readUintptr (4 samples, 0.04%) + + + +runtime.gentraceback (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.BaseAuthzHandler.func1.1 (3 samples, 0.03%) + + + +runtime.(*mcache).refill (3 samples, 0.03%) + + + +sync.(*Pool).Get (1 samples, 0.01%) + + + +reflect.New (6 samples, 0.06%) + + + +runtime.unlock2 (2 samples, 0.02%) + + + +time.leadingInt[...] (6 samples, 0.06%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +cmpbody (2 samples, 0.02%) + + + +syscall.RawSyscall6 (4 samples, 0.04%) + + + +encoding/json.stateBeginString (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +sort.symMerge (24 samples, 0.24%) + + + +encoding/json.(*decodeState).readIndex (1 samples, 0.01%) + + + +syscall.Write (1 samples, 0.01%) + + + +syscall.RawSyscall6 (1 samples, 0.01%) + + + +reflect.Value.CanAddr (1 samples, 0.01%) + + + +runtime.newobject (3 samples, 0.03%) + + + +runtime.mallocgc (17 samples, 0.17%) + + + +encoding/json.(*decodeState).object (254 samples, 2.55%) +en.. + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.growslice (1 samples, 0.01%) + + + +encoding/json.indirect (20 samples, 0.20%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +runtime.gentraceback (20 samples, 0.20%) + + + +runtime.growWork_faststr (9 samples, 0.09%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.scan (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/image.getOCIImage (1 samples, 0.01%) + + + +runtime.(*mheap).alloc.func1 (3 samples, 0.03%) + + + +runtime.nilinterhash (6 samples, 0.06%) + + + +sync.runtime_procPin (1 samples, 0.01%) + + + +reflect.(*rtype).typeOff (1 samples, 0.01%) + + + +runtime.deferprocStack (2 samples, 0.02%) + + + +reflect.Value.Elem (1 samples, 0.01%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +runtime.mallocgc (5 samples, 0.05%) + + + +encoding/json.(*decodeState).value (1,292 samples, 12.95%) +encoding/json.(*dec.. + + +runtime.(*moduledata).textAddr (1 samples, 0.01%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +runtime.lockRankMayQueueFinalizer (2 samples, 0.02%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*DB).Update (1 samples, 0.01%) + + + +runtime.(*mcentral).uncacheSpan (2 samples, 0.02%) + + + +runtime.(*spanSet).pop (1 samples, 0.01%) + + + +os.openFileNolog (7 samples, 0.07%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.findObject (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func4 (4,930 samples, 49.40%) +github.com/99designs/gqlgen/graphql/executor.processExtensions.func4 + + +os.Open (8 samples, 0.08%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Bucket).Cursor (4 samples, 0.04%) + + + +runtime.step (1 samples, 0.01%) + + + +os.newFile (4 samples, 0.04%) + + + +syscall.Stat (60 samples, 0.60%) + + + +github.com/opencontainers/go-digest.NewDigestFromEncoded (3 samples, 0.03%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (2 samples, 0.02%) + + + +runtime.markBits.setMarked (1 samples, 0.01%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +runtime.(*lfstack).push (1 samples, 0.01%) + + + +runtime.roundupsize (3 samples, 0.03%) + + + +runtime/internal/syscall.EpollCtl (1 samples, 0.01%) + + + +internal/poll.(*FD).destroy (1 samples, 0.01%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +runtime.gcWriteBarrierDX (1 samples, 0.01%) + + + +runtime.(*_type).typeOff (1 samples, 0.01%) + + + +github.com/gorilla/mux.(*Router).ServeHTTP (3 samples, 0.03%) + + + +reflect.Value.Kind (8 samples, 0.08%) + + + +runtime.arenaIdx.l2 (2 samples, 0.02%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.makemap (2 samples, 0.02%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +runtime.(*spanSet).pop (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (1 samples, 0.01%) + + + +encoding/json.stateEndValue (2 samples, 0.02%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +fmt.(*pp).free (1 samples, 0.01%) + + + +runtime.removefinalizer (1 samples, 0.01%) + + + +runtime.mapaccess2_faststr (2 samples, 0.02%) + + + +runtime/internal/syscall.Syscall6 (4 samples, 0.04%) + + + +runtime.mallocgc (41 samples, 0.41%) + + + +github.com/aquasecurity/trivy/pkg/scanner/local.Scanner.Scan (2 samples, 0.02%) + + + +encoding/json.indirect (5 samples, 0.05%) + + + +runtime.profilealloc (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Cursor).searchPage.func1 (7 samples, 0.07%) + + + +runtime.(*gcControllerState).memoryLimitHeapGoal (2 samples, 0.02%) + + + +runtime.reentersyscall (22 samples, 0.22%) + + + +sync.(*Pool).Get (2 samples, 0.02%) + + + +encoding/json.stateInString (222 samples, 2.22%) +e.. + + +syscall.RawSyscall6 (4 samples, 0.04%) + + + +runtime.writeHeapBits.write (1 samples, 0.01%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +sort.swapRange (6 samples, 0.06%) + + + +runtime.(*gcWork).empty (2 samples, 0.02%) + + + +go.etcd.io/bbolt.(*Cursor).search (1 samples, 0.01%) + + + +os.basename (43 samples, 0.43%) + + + +os.basename (1 samples, 0.01%) + + + +runtime.(*gcControllerState).memoryLimitHeapGoal (1 samples, 0.01%) + + + +fmt.(*fmt).fmtS (5 samples, 0.05%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (357 samples, 3.58%) +enc.. + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Stat (666 samples, 6.67%) +zotregist.. + + +runtime.gcStart (1 samples, 0.01%) + + + +encoding/json.stateBeginValue (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/fanal/applier.(*applier).ApplyLayers (1 samples, 0.01%) + + + +runtime.newobject (1 samples, 0.01%) + + + +encoding/json.(*decodeState).literalStore (846 samples, 8.48%) +encoding/jso.. + + +runtime.unlock2 (1 samples, 0.01%) + + + +fmt.newPrinter (6 samples, 0.06%) + + + +os.Open (2 samples, 0.02%) + + + +reflect.(*rtype).NumMethod (4 samples, 0.04%) + + + +os.OpenFile (9 samples, 0.09%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executableSchema).Exec.func1 (3 samples, 0.03%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +runtime.newobject (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/storage/imagestore.(*ImageStore).dedupeBlobs (2 samples, 0.02%) + + + +runtime.funcInfo.entry (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +reflect.typesMustMatch (1 samples, 0.01%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (4 samples, 0.04%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +github.com/opencontainers/go-digest.Algorithm.String (4 samples, 0.04%) + + + +runtime.greyobject (2 samples, 0.02%) + + + +reflect.(*rtype).Name (12 samples, 0.12%) + + + +runtime.(*mcentral).cacheSpan (3 samples, 0.03%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +reflect.Copy (9 samples, 0.09%) + + + +runtime.mapassign_faststr (1 samples, 0.01%) + + + +encoding/json.(*decodeState).literalStore (282 samples, 2.83%) +en.. + + +bytes.Compare (5 samples, 0.05%) + + + +runtime.(*activeSweep).end (3 samples, 0.03%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +os.ignoringEINTR (525 samples, 5.26%) +os.ign.. + + +sort.symMerge (8 samples, 0.08%) + + + +encoding/json.unquoteBytes (6 samples, 0.06%) + + + +memeqbody (2 samples, 0.02%) + + + +runtime.(*gcBitsArena).tryAlloc (1 samples, 0.01%) + + + +crypto/tls.(*Conn).readRecordOrCCS (1 samples, 0.01%) + + + +runtime.getempty (193 samples, 1.93%) +r.. + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (2 samples, 0.02%) + + + +os.(*File).Close (2 samples, 0.02%) + + + +go.etcd.io/bbolt.(*Tx).CreateBucketIfNotExists (1 samples, 0.01%) + + + +runtime.duffzero (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.updateImageSummaryVulnerabilities (1 samples, 0.01%) + + + +runtime.mProf_Malloc (1 samples, 0.01%) + + + +reflect.Value.Interface (4 samples, 0.04%) + + + +runtime.lock2 (4 samples, 0.04%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.archiveStandaloneScanner (1 samples, 0.01%) + + + +fmt.(*pp).doPrintf (87 samples, 0.87%) + + + +sort.symMerge (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +sort.Stable (18 samples, 0.18%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func2 (3 samples, 0.03%) + + + +reflect.(*rtype).nameOff (1 samples, 0.01%) + + + +runtime.newobject (46 samples, 0.46%) + + + +reflect.(*rtype).String (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.wbBufFlush (2 samples, 0.02%) + + + +runtime.(*mspan).divideByElemSize (1 samples, 0.01%) + + + +runtime.profilealloc (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (7 samples, 0.07%) + + + +net/http.initALPNRequest.ServeHTTP (3 samples, 0.03%) + + + +sort.rotate (10 samples, 0.10%) + + + +runtime.(*mcentral).grow (2 samples, 0.02%) + + + +runtime.(*mspan).objIndex (1 samples, 0.01%) + + + +net/http.(*http2serverConn).runHandler (4,932 samples, 49.42%) +net/http.(*http2serverConn).runHandler + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.lock (1 samples, 0.01%) + + + +reflect.Value.Set (1 samples, 0.01%) + + + +encoding/json.stateEndValue (3 samples, 0.03%) + + + +reflect.resolveTypeOff (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).ScanImage (3 samples, 0.03%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +syscall.Syscall (7 samples, 0.07%) + + + +runtime.releasem (1 samples, 0.01%) + + + +reflect.unsafe_NewArray (17 samples, 0.17%) + + + +runtime.(*mspan).divideByElemSize (1 samples, 0.01%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +internal/poll.(*FD).Read (1 samples, 0.01%) + + + +runtime.(*mspan).init (1 samples, 0.01%) + + + +encoding/json.(*decodeState).scanWhile (6 samples, 0.06%) + + + +runtime.funcInfo.entry (1 samples, 0.01%) + + + +indexbytebody (3 samples, 0.03%) + + + +syscall.Syscall6 (460 samples, 4.61%) +sysca.. + + +encoding/json.isSpace (1 samples, 0.01%) + + + +runtime.spanOf (1 samples, 0.01%) + + + +os.readInt (3 samples, 0.03%) + + + +reflect.(*rtype).ptrTo (1 samples, 0.01%) + + + +runtime.memmove (2 samples, 0.02%) + + + +runtime.(*mcache).nextFree (2 samples, 0.02%) + + + +crypto/tls.(*Conn).Read (1 samples, 0.01%) + + + +runtime.systemstack (6 samples, 0.06%) + + + +encoding/json.(*decodeState).literalStore (1 samples, 0.01%) + + + +syscall.Syscall6 (4 samples, 0.04%) + + + +os.(*fileStat).IsDir (1 samples, 0.01%) + + + +runtime.convTslice (4 samples, 0.04%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query_GlobalSearch.func2 (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Quer.. + + +runtime.deductAssistCredit (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.PaginatedRepoMeta2RepoSummaries (1 samples, 0.01%) + + + +reflect.Value.Addr (1 samples, 0.01%) + + + +runtime.(*gcBits).bitp (1 samples, 0.01%) + + + +reflect.Value.Type (4 samples, 0.04%) + + + +fmt.(*buffer).writeString (3 samples, 0.03%) + + + +github.com/opencontainers/go-digest.Algorithm.Validate (645 samples, 6.46%) +github.c.. + + +runtime.newstack (6 samples, 0.06%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +reflect.Value.Kind (2 samples, 0.02%) + + + +runtime.gcmarknewobject (1 samples, 0.01%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +syscall.ReadDirent (10 samples, 0.10%) + + + +runtime.(*gcControllerState).memoryLimitHeapGoal (1 samples, 0.01%) + + + +runtime.futex (4 samples, 0.04%) + + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +runtime.gcWriteBarrier (2 samples, 0.02%) + + + +runtime.lockRankMayQueueFinalizer (2 samples, 0.02%) + + + +runtime.findRunnable (4 samples, 0.04%) + + + +runtime/internal/atomic.(*Uint32).Add (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*elemRef).isLeaf (1 samples, 0.01%) + + + +runtime.(*gcBits).bytep (1 samples, 0.01%) + + + +runtime.memclrHasPointers (1 samples, 0.01%) + + + +reflect.(*rtype).Key (1 samples, 0.01%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +sort.Stable (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.exitsyscallfast (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.putempty (83 samples, 0.83%) + + + +runtime.(*_type).typeOff (1 samples, 0.01%) + + + +runtime.stealWork (72 samples, 0.72%) + + + +reflect.unpackEface (1 samples, 0.01%) + + + +runtime.(*gcControllerState).trigger (1 samples, 0.01%) + + + +strconv.formatBits (6 samples, 0.06%) + + + +path.Join (408 samples, 4.09%) +path.. + + +runtime.mallocgc (3 samples, 0.03%) + + + +os.basename (1 samples, 0.01%) + + + +internal/poll.(*pollDesc).init (1 samples, 0.01%) + + + +runtime.arenaIdx.l1 (1 samples, 0.01%) + + + +reflect.(*rtype).PkgPath (1 samples, 0.01%) + + + +runtime.mapaccess2_faststr (12 samples, 0.12%) + + + +go.etcd.io/bbolt.(*Cursor).searchPage (49 samples, 0.49%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +reflect.flag.kind (2 samples, 0.02%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.growslice (2 samples, 0.02%) + + + +runtime.writeHeapBits.flush (2 samples, 0.02%) + + + +github.com/gorilla/mux.(*routeRegexp).Match (1 samples, 0.01%) + + + +runtime.getempty (2 samples, 0.02%) + + + +encoding/json.checkValid (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.deductAssistCredit (1 samples, 0.01%) + + + +time.isDigit[...] (1 samples, 0.01%) + + + +crypto.Hash.Available (4 samples, 0.04%) + + + +github.com/gorilla/mux.(*Router).Match (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.releasem (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.Descriptor2ImageSummary (1 samples, 0.01%) + + + +reflect.Value.Elem (1 samples, 0.01%) + + + +sync.(*Pool).Put (1 samples, 0.01%) + + + +runtime.(*mheap).allocMSpanLocked (1 samples, 0.01%) + + + +time.(*Time).UnmarshalJSON (72 samples, 0.72%) + + + +reflect.makemap (3 samples, 0.03%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.gcWriteBarrierCX (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (4 samples, 0.04%) + + + +reflect.name.name (6 samples, 0.06%) + + + +runtime.(*mcentral).cacheSpan (2 samples, 0.02%) + + + +runtime.(*gcBits).bitp (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).List (33 samples, 0.33%) + + + +sync.indexLocal (1 samples, 0.01%) + + + +runtime.(*gcBits).bytep (2 samples, 0.02%) + + + +go.etcd.io/bbolt.unsafeSlice (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.updateRepoSummaryVulnerabilities (2 samples, 0.02%) + + + +runtime.makeBucketArray (3 samples, 0.03%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +time.FixedZone (1 samples, 0.01%) + + + +runtime.(*sweepLocker).tryAcquire (1 samples, 0.01%) + + + +github.com/gorilla/mux.(*Router).Match (1 samples, 0.01%) + + + +runtime.heapBitsForAddr (17 samples, 0.17%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +reflect.name.data (4 samples, 0.04%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.(*gcBits).bytep (1 samples, 0.01%) + + + +io.ReadAtLeast (1 samples, 0.01%) + + + +reflect.unpackEface (1 samples, 0.01%) + + + +syscall.ByteSliceFromString (2 samples, 0.02%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executableSchema).Exec.func1 (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executableSchema).Exec... + + +sort.StringSlice.Swap (2 samples, 0.02%) + + + +time.atoi[...] (7 samples, 0.07%) + + + +runtime.resolveTypeOff (1 samples, 0.01%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +runtime.publicationBarrier (1 samples, 0.01%) + + + +runtime.deductAssistCredit (1 samples, 0.01%) + + + +reflect.flag.mustBeAssignable (1 samples, 0.01%) + + + +runtime.memmove (6 samples, 0.06%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.getAllHistory (78 samples, 0.78%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +time.parseRFC3339[...] (70 samples, 0.70%) + + + +runtime.(*mheap).alloc.func1 (3 samples, 0.03%) + + + +runtime.memclrNoHeapPointers (2 samples, 0.02%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint32).CompareAndSwap (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Walk (2,972 samples, 29.78%) +zotregistry.io/zot/pkg/storage/local.(*Driver)... + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.(*AuthnMiddleware).TryAuthnHandlers.func1.1 (3 samples, 0.03%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +go.etcd.io/bbolt.(*Cursor).searchPage.func1 (7 samples, 0.07%) + + + +reflect.(*rtype).ptrTo (3 samples, 0.03%) + + + +reflect.(*rtype).typeOff (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*DB).View (1 samples, 0.01%) + + + +runtime.newMarkBits (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/meta/common.RankRepoName (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +reflect.(*rtype).Name (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +encoding/json.cachedTypeFields (3 samples, 0.03%) + + + +net/http.HandlerFunc.ServeHTTP (4,931 samples, 49.41%) +net/http.HandlerFunc.ServeHTTP + + +runtime.cmpstring (1 samples, 0.01%) + + + +runtime.newobject (8 samples, 0.08%) + + + +syscall.Syscall (3 samples, 0.03%) + + + +runtime.systemstack (3 samples, 0.03%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.exitsyscall (1 samples, 0.01%) + + + +regexp.(*Regexp).FindAllString (1 samples, 0.01%) + + + +reflect.(*rtype).Elem (1 samples, 0.01%) + + + +runtime.procyield (3 samples, 0.03%) + + + +runtime.(*pageAlloc).allocRange (2 samples, 0.02%) + + + +path.lastSlash (85 samples, 0.85%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +os.(*File).readdir (30 samples, 0.30%) + + + +runtime.fastexprand (1 samples, 0.01%) + + + +runtime.mapiternext (4 samples, 0.04%) + + + +cmpbody (14 samples, 0.14%) + + + +runtime.scanblock (7 samples, 0.07%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +runtime.growslice (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).List (114 samples, 1.14%) + + + +runtime.gcWriteBarrierR8 (1 samples, 0.01%) + + + +runtime.(*mheap).alloc (3 samples, 0.03%) + + + +runtime.reentersyscall (1 samples, 0.01%) + + + +runtime.mallocgc (6 samples, 0.06%) + + + +syscall.read (3 samples, 0.03%) + + + +runtime.mallocgc (5 samples, 0.05%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func23.1 (1 samples, 0.01%) + + + +runtime.divRoundUp (7 samples, 0.07%) + + + +runtime/internal/atomic.(*Uint32).CompareAndSwap (2 samples, 0.02%) + + + +runtime.gcWriteBarrierR8 (1 samples, 0.01%) + + + +reflect.Value.IsValid (2 samples, 0.02%) + + + +runtime.callers.func1 (1 samples, 0.01%) + + + +regexp.(*Regexp).doExecute (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.(*mspan).markBitsForIndex (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetAnnotations (15 samples, 0.15%) + + + +sync.(*Map).loadReadOnly (1 samples, 0.01%) + + + +runtime.(*gcBits).bytep (1 samples, 0.01%) + + + +reflect.ifaceIndir (1 samples, 0.01%) + + + +runtime.callers.func1 (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (1 samples, 0.01%) + + + +runtime.mallocgc (22 samples, 0.22%) + + + +fmt.(*fmt).padString (4 samples, 0.04%) + + + +runtime.gcResetMarkState (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.SessionAuditLogger.func1.1 (3 samples, 0.03%) + + + +runtime/internal/atomic.(*Uint8).Store (1 samples, 0.01%) + + + +runtime.heapBitsSetType (11 samples, 0.11%) + + + +internal/poll.(*FD).Close (3 samples, 0.03%) + + + +runtime.divRoundUp (3 samples, 0.03%) + + + +runtime.arenaIndex (6 samples, 0.06%) + + + +runtime.(*mcentral).cacheSpan (4 samples, 0.04%) + + + +sort.swapRange (1 samples, 0.01%) + + + +reflect.directlyAssignable (1 samples, 0.01%) + + + +runtime.makeBucketArray (6 samples, 0.06%) + + + +internal/testlog.Stat (2 samples, 0.02%) + + + +runtime.(*hmap).growing (1 samples, 0.01%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +reflect.unsafe_New (12 samples, 0.12%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func23.1 (3 samples, 0.03%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.(*sweepLocked).sweep (1 samples, 0.01%) + + + +reflect.(*rtype).NumMethod (1 samples, 0.01%) + + + +reflect.makeString (1 samples, 0.01%) + + + +runtime.(*mspan).initHeapBits (2 samples, 0.02%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.newobject (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Tx).allocate (1 samples, 0.01%) + + + +runtime.(*gcBitsArena).tryAlloc (8 samples, 0.08%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +runtime.findObject (1 samples, 0.01%) + + + +os.fillFileStatFromSys (2 samples, 0.02%) + + + +runtime.(*gcBits).bytep (1 samples, 0.01%) + + + +reflect.(*rtype).String (8 samples, 0.08%) + + + +internal/poll.(*FD).Init (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*elemRef).isLeaf (2 samples, 0.02%) + + + +runtime.gopreempt_m (6 samples, 0.06%) + + + +reflect.(*rtype).exportedMethods (2 samples, 0.02%) + + + +reflect.(*rtype).exportedMethods (1 samples, 0.01%) + + + +sort.insertionSort (51 samples, 0.51%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +reflect.add (1 samples, 0.01%) + + + +encoding/json.indirect (35 samples, 0.35%) + + + +aeshashbody (2 samples, 0.02%) + + + +memeqbody (3 samples, 0.03%) + + + +runtime.writeHeapBits.flush (2 samples, 0.02%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (4 samples, 0.04%) + + + +strings.Split (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.heapBitsSetType (2 samples, 0.02%) + + + +reflect.(*rtype).typeOff (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.mapaccess2_faststr (2 samples, 0.02%) + + + +encoding/json.(*decodeState).object (42 samples, 0.42%) + + + +runtime/internal/syscall.Syscall6 (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.MissingBlobs (1 samples, 0.01%) + + + +runtime.(*mSpanStateBox).set (2 samples, 0.02%) + + + +reflect.(*rtype).ptrTo (1 samples, 0.01%) + + + +runtime.arenaIdx.l1 (2 samples, 0.02%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (3 samples, 0.03%) + + + +runtime.gcmarknewobject (1 samples, 0.01%) + + + +runtime.pageIndexOf (27 samples, 0.27%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.(*pallocData).findScavengeCandidate (1 samples, 0.01%) + + + +runtime.getMCache (2 samples, 0.02%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +io.ReadFull (1 samples, 0.01%) + + + +runtime.traceback1 (1 samples, 0.01%) + + + +encoding/json.(*decodeState).array (1 samples, 0.01%) + + + +syscall.openat (4 samples, 0.04%) + + + +runtime.(*mheap).alloc (2 samples, 0.02%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +reflect.Value.assignTo (1 samples, 0.01%) + + + +reflect.Value.CanAddr (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.runSafePointFn (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*page).branchPageElements (1 samples, 0.01%) + + + +regexp.newLazyFlag (38 samples, 0.38%) + + + +os.readInt (1 samples, 0.01%) + + + +sort.StringSlice.Less (2 samples, 0.02%) + + + +reflect.Value.Type (1 samples, 0.01%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +runtime.duffzero (1 samples, 0.01%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +reflect.ValueOf (1 samples, 0.01%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +reflect.Value.IsNil (1 samples, 0.01%) + + + +runtime.findObject (231 samples, 2.31%) +r.. + + +go.etcd.io/bbolt.(*DB).View (2,225 samples, 22.29%) +go.etcd.io/bbolt.(*DB).View + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +reflect.name.name (1 samples, 0.01%) + + + +syscall.openat (3 samples, 0.03%) + + + +reflect.(*rtype).ptrTo (3 samples, 0.03%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +runtime.typedslicecopy (3 samples, 0.03%) + + + +runtime.mallocgc (4 samples, 0.04%) + + + +os.direntReclen (5 samples, 0.05%) + + + +runtime.(*atomicMSpanPointer).StoreNoWB (2 samples, 0.02%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +fmt.(*pp).printValue (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Cursor).seek (52 samples, 0.52%) + + + +sync.(*Pool).Get (1 samples, 0.01%) + + + +runtime.mapassign_faststr (4 samples, 0.04%) + + + +internal/reflectlite.TypeOf (2 samples, 0.02%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +runtime.deductAssistCredit (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Cursor).next (1 samples, 0.01%) + + + +runtime.(*mheap).initSpan (1 samples, 0.01%) + + + +runtime.bgsweep (106 samples, 1.06%) + + + +runtime.makeslice (4 samples, 0.04%) + + + +time.daysSinceEpoch (4 samples, 0.04%) + + + +encoding/json.(*decodeState).init (2 samples, 0.02%) + + + +reflect.name.readVarint (1 samples, 0.01%) + + + +regexp.newOnePassMachine (8 samples, 0.08%) + + + +runtime.(*mcache).nextFree (3 samples, 0.03%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +runtime.scanblock (1 samples, 0.01%) + + + +runtime.(*fixalloc).alloc (2 samples, 0.02%) + + + +reflect.name.readVarint (3 samples, 0.03%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +runtime.getempty (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (2 samples, 0.02%) + + + +runtime.(*mcentral).grow (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/scanner/local.Scanner.Scan (5 samples, 0.05%) + + + +time.unixTime (2 samples, 0.02%) + + + +encoding/json.(*decodeState).object (246 samples, 2.46%) +en.. + + +runtime.(*gcControllerState).heapGoalInternal (1 samples, 0.01%) + + + +reflect.(*rtype).NumMethod (1 samples, 0.01%) + + + +runtime.duffzero (5 samples, 0.05%) + + + +encoding/json.(*decodeState).scanWhile (9 samples, 0.09%) + + + +runtime.newobject (3 samples, 0.03%) + + + +path.(*lazybuf).append (185 samples, 1.85%) +p.. + + +runtime.gcMarkTermination (5 samples, 0.05%) + + + +internal/reflectlite.(*rtype).Comparable (2 samples, 0.02%) + + + +runtime.evacuate_faststr (1 samples, 0.01%) + + + +syscall.Syscall (10 samples, 0.10%) + + + +zotregistry.io/zot/pkg/api.BaseAuthzHandler.func1.1 (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/api.BaseAuthzHandler.func1.1 + + +syscall.write (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (10 samples, 0.10%) + + + +runtime.mallocgc (5 samples, 0.05%) + + + +zotregistry.io/zot/pkg/common.CORSHeadersMiddleware.func1.1 (3 samples, 0.03%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +runtime.(*mspan).nextFreeIndex (1 samples, 0.01%) + + + +runtime.(*lfstack).push (1 samples, 0.01%) + + + +sort.symMerge (1 samples, 0.01%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +sync.(*Pool).Put (6 samples, 0.06%) + + + +encoding/json.stateT (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (9 samples, 0.09%) + + + +reflect.Value.Addr (7 samples, 0.07%) + + + +syscall.RawSyscall6 (422 samples, 4.23%) +sysca.. + + +runtime.funcdata (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +sync.runtime_procPin (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1.1 (3 samples, 0.03%) + + + +os.ignoringEINTR (13 samples, 0.13%) + + + +sort.StringSlice.Less (4 samples, 0.04%) + + + +encoding/json.(*decodeState).literalStore (77 samples, 0.77%) + + + +syscall.ReadDirent (1 samples, 0.01%) + + + +reflect.(*rtype).String (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).ScanImage (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/common.ACHeadersMiddleware.func1.1 (3 samples, 0.03%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +runtime.(*gcBits).bytep (1 samples, 0.01%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +reflect.Value.Addr (12 samples, 0.12%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +sort.symMerge (101 samples, 1.01%) + + + +github.com/rs/zerolog.(*Event).msg (1 samples, 0.01%) + + + +encoding/json.(*scanner).pushParseState (3 samples, 0.03%) + + + +reflect.(*rtype).uncommon (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.mapassign_faststr (22 samples, 0.22%) + + + +encoding/json.(*decodeState).array (1 samples, 0.01%) + + + +runtime.assertE2I2 (1 samples, 0.01%) + + + +runtime.(*stackScanState).putPtr (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.stringtoslicebyte (5 samples, 0.05%) + + + +runtime.newobject (1 samples, 0.01%) + + + +internal/poll.(*FD).incref (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.fileInfo.IsDir (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Cursor).Next (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (2 samples, 0.02%) + + + +runtime.reentersyscall (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.scan (3 samples, 0.03%) + + + +runtime.mallocgc (8 samples, 0.08%) + + + +runtime.(*_type).typeOff (1 samples, 0.01%) + + + +runtime.memequal (1 samples, 0.01%) + + + +runtime.memmove (2 samples, 0.02%) + + + +encoding/json.Unmarshal (1,824 samples, 18.28%) +encoding/json.Unmarshal + + +runtime/internal/atomic.(*Uint32).Add (1 samples, 0.01%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +runtime.convT64 (2 samples, 0.02%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +reflect.MakeMap (1 samples, 0.01%) + + + +os.(*fileStat).IsDir (1 samples, 0.01%) + + + +runtime.pageIndexOf (1 samples, 0.01%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/detector/ospkg.Detect (2 samples, 0.02%) + + + +runtime.newarray (1 samples, 0.01%) + + + +runtime.getitab (4 samples, 0.04%) + + + +runtime.(*mcentral).uncacheSpan (1 samples, 0.01%) + + + +all (9,980 samples, 100%) + + + +reflect.flag.mustBeAssignable (1 samples, 0.01%) + + + +runtime.mallocgc (18 samples, 0.18%) + + + +runtime.(*atomicMSpanPointer).StoreNoWB (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func23 (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Quer.. + + +runtime.divRoundUp (3 samples, 0.03%) + + + +runtime.(*bmap).overflow (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +syscall.Close (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.NewFSCache (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (4 samples, 0.04%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func24 (3 samples, 0.03%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.NewFSCache.func1 (1 samples, 0.01%) + + + +runtime.spanSetSpinePointer.lookup (1 samples, 0.01%) + + + +reflect.(*rtype).exportedMethods (5 samples, 0.05%) + + + +runtime.(*spanSet).push (1 samples, 0.01%) + + + +os.(*File).readdir (1 samples, 0.01%) + + + +runtime.roundupsize (1 samples, 0.01%) + + + +runtime.(*_type).typeOff (2 samples, 0.02%) + + + +reflect.resolveTypeOff (1 samples, 0.01%) + + + +time.(*Time).UnmarshalJSON (14 samples, 0.14%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.(*sweepLocker).tryAcquire (1 samples, 0.01%) + + + +runtime.lockWithRank (2 samples, 0.02%) + + + +reflect.(*rtype).typeOff (1 samples, 0.01%) + + + +memeqbody (1 samples, 0.01%) + + + +runtime.mapassign_faststr (10 samples, 0.10%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +runtime.(*atomicMSpanPointer).StoreNoWB (1 samples, 0.01%) + + + +os.(*File).Read (3 samples, 0.03%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +cmpbody (2 samples, 0.02%) + + + +runtime.read (1 samples, 0.01%) + + + +reflect.Value.Elem (1 samples, 0.01%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +memeqbody (1 samples, 0.01%) + + + +sort.rotate (14 samples, 0.14%) + + + +reflect.(*rtype).hasName (1 samples, 0.01%) + + + +regexp.(*inputs).clear (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1 (3 samples, 0.03%) + + + +cmpbody (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +internal/reflectlite.toType (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/cve.BaseCveInfo.GetCVESummaryForImageMedia (3 samples, 0.03%) + + + +internal/poll.(*FD).Close (1 samples, 0.01%) + + + +io.copyBuffer (1 samples, 0.01%) + + + +runtime.(*fixalloc).alloc (1 samples, 0.01%) + + + +aeshashbody (1 samples, 0.01%) + + + +runtime.(*mSpanStateBox).get (51 samples, 0.51%) + + + +runtime.bucketMask (1 samples, 0.01%) + + + +runtime.(*gcWork).tryGetFast (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.ImageManifest2ImageSummary (2,628 samples, 26.33%) +zotregistry.io/zot/pkg/extensions/search/.. + + +github.com/google/go-containerregistry/pkg/v1/layout.(*layoutIndex).IndexManifest (1 samples, 0.01%) + + + +runtime.(*scavengerState).run (34 samples, 0.34%) + + + +github.com/aquasecurity/trivy/pkg/detector/ospkg/ubuntu.(*Scanner).Detect (2 samples, 0.02%) + + + +runtime.(*_type).typeOff (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.(*gcWork).balance (2 samples, 0.02%) + + + +internal/poll.ignoringEINTRIO (1 samples, 0.01%) + + + +regexp.(*Regexp).MatchString (1 samples, 0.01%) + + + +runtime.(*mheap).allocMSpanLocked (2 samples, 0.02%) + + + +reflect.name.readVarint (2 samples, 0.02%) + + + +sync.(*Pool).pin (1 samples, 0.01%) + + + +encoding/json.(*scanner).pushParseState (2 samples, 0.02%) + + + +go.etcd.io/bbolt.(*DB).Update (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func4 (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql.(*FieldSet).Dispatch (3 samples, 0.03%) + + + +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1.1 (4,930 samples, 49.40%) +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.. + + +runtime.systemstack (1 samples, 0.01%) + + + +sort.rotate (2 samples, 0.02%) + + + +encoding/json.indirect (20 samples, 0.20%) + + + +encoding/json.indirect (4 samples, 0.04%) + + + +internal/poll.(*fdMutex).decref (1 samples, 0.01%) + + + +strings.Index (4 samples, 0.04%) + + + +runtime.makeslice (4 samples, 0.04%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.ScanImage (8 samples, 0.08%) + + + +runtime.mapaccess2_faststr (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.runTrivy (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/storage/local.(*fileWriter).Close (1 samples, 0.01%) + + + +fmt.(*fmt).padString (4 samples, 0.04%) + + + +runtime.casgstatus (1 samples, 0.01%) + + + +reflect.(*rtype).Elem (2 samples, 0.02%) + + + +runtime.scanobject (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (5 samples, 0.05%) + + + +github.com/aquasecurity/trivy-db/pkg/db.Config.getDataSource (1 samples, 0.01%) + + + +syscall.BytePtrFromString (8 samples, 0.08%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +runtime.SetFinalizer.func1 (1 samples, 0.01%) + + + +runtime.(*mheap).alloc (3 samples, 0.03%) + + + +runtime.add (1 samples, 0.01%) + + + +runtime.bulkBarrierPreWrite (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +runtime.(*mcentral).uncacheSpan (1 samples, 0.01%) + + + +runtime.heapBitsSetType (4 samples, 0.04%) + + + +reflect.unpackEface (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +runtime.heapBitsSetType (4 samples, 0.04%) + + + +time.Date (16 samples, 0.16%) + + + +internal/poll.(*FD).decref (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*node).spill (1 samples, 0.01%) + + + +runtime.(*mspan).base (1 samples, 0.01%) + + + +runtime.(*gcWork).putFast (5 samples, 0.05%) + + + +zotregistry.io/zot/pkg/api.SessionLogger.func1.1 (3 samples, 0.03%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +reflect.Value.Interface (7 samples, 0.07%) + + + +runtime.gcTrigger.test (1 samples, 0.01%) + + + +reflect.(*uncommonType).exportedMethods (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/api.SessionLogger.func1.1 (4,931 samples, 49.41%) +zotregistry.io/zot/pkg/api.SessionLogger.func1.1 + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +runtime.mallocgc (4 samples, 0.04%) + + + +runtime.gcBgMarkWorker.func2 (1,665 samples, 16.68%) +runtime.gcBgMarkWorker.fu.. + + +encoding/json.stateEndValue (3 samples, 0.03%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +reflect.toType (1 samples, 0.01%) + + + +runtime.(*fixalloc).alloc (4 samples, 0.04%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/detector/library.(*Driver).DetectVulnerabilities (1 samples, 0.01%) + + + +os.statNolog.func1 (519 samples, 5.20%) +os.sta.. + + +encoding/json.stateEndValue (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/meta/common.InitializeImageConfig (1,166 samples, 11.68%) +zotregistry.io/zo.. + + +runtime.newMarkBits (1 samples, 0.01%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +runtime.(*mspan).base (17 samples, 0.17%) + + + +indexbytebody (17 samples, 0.17%) + + + +reflect.ValueOf (1 samples, 0.01%) + + + +encoding/json.cachedTypeFields (33 samples, 0.33%) + + + +runtime.(*mcache).refill (5 samples, 0.05%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.PaginatedRepoMeta2RepoSummaries (3 samples, 0.03%) + + + +runtime.(*mheap).allocMSpanLocked (1 samples, 0.01%) + + + +reflect.Value.Set (1 samples, 0.01%) + + + +runtime.SetFinalizer (1 samples, 0.01%) + + + +sort.rotate (18 samples, 0.18%) + + + +go.etcd.io/bbolt.(*Cursor).nsearch.func2 (5 samples, 0.05%) + + + +aeshashbody (1 samples, 0.01%) + + + +reflect.add (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.updateRepoSummaryVulnerabilities (3 samples, 0.03%) + + + +strconv.ParseUint (10 samples, 0.10%) + + + +encoding/json.indirect (26 samples, 0.26%) + + + +os.openFileNolog (9 samples, 0.09%) + + + +reflect.Value.Convert (2 samples, 0.02%) + + + +net/http.HandlerFunc.ServeHTTP (4,930 samples, 49.40%) +net/http.HandlerFunc.ServeHTTP + + +runtime.bucketMask (1 samples, 0.01%) + + + +regexp.(*Regexp).doExecute (1 samples, 0.01%) + + + +reflect.Value.SetString (1 samples, 0.01%) + + + +runtime.(*spanSet).pop (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (3 samples, 0.03%) + + + +time.tzsetOffset (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (1 samples, 0.01%) + + + +sync.(*entry).load (3 samples, 0.03%) + + + +reflect.Value.assignTo (2 samples, 0.02%) + + + +reflect.(*rtype).nameOff (1 samples, 0.01%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +syscall.Syscall (2 samples, 0.02%) + + + +encoding/json.unquoteBytes (32 samples, 0.32%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +encoding/json.(*decodeState).scanWhile (11 samples, 0.11%) + + + +zotregistry.io/zot/pkg/extensions/sync.(*BaseService).SyncRepo.func2 (119 samples, 1.19%) + + + +reflect.Value.Field (3 samples, 0.03%) + + + +runtime.bool2int (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Bool).Load (3 samples, 0.03%) + + + +regexp.(*Regexp).backtrack (1 samples, 0.01%) + + + +syscall.Syscall (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +runtime.(*mspan).markBitsForIndex (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetDocumentation (2 samples, 0.02%) + + + +fmt.Sprintf (15 samples, 0.15%) + + + +os.direntIno (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (177 samples, 1.77%) + + + +runtime.findObject (3 samples, 0.03%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +runtime.(*gcControllerState).trigger (1 samples, 0.01%) + + + +runtime.newobject (2 samples, 0.02%) + + + +runtime.evacuate_faststr (13 samples, 0.13%) + + + +path.(*lazybuf).append (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.(*atomicMSpanPointer).StoreNoWB (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).scanArtifact (2 samples, 0.02%) + + + +github.com/gorilla/mux.(*Route).Match (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Bucket).pageNode (3 samples, 0.03%) + + + +encoding/json.(*decodeState).literalStore (17 samples, 0.17%) + + + +encoding/json.(*scanner).pushParseState (1 samples, 0.01%) + + + +time.parseRFC3339[...].func1 (4 samples, 0.04%) + + + +sort.Search (8 samples, 0.08%) + + + +reflect.(*rtype).typeOff (4 samples, 0.04%) + + + +runtime.(*gcWork).balance (296 samples, 2.97%) +ru.. + + +reflect.resolveNameOff (1 samples, 0.01%) + + + +runtime.(*mheap).alloc.func1 (6 samples, 0.06%) + + + +zotregistry.io/zot/pkg/storage/imagestore.(*ImageStore).GetNextDigestWithBlobPaths.func1 (980 samples, 9.82%) +zotregistry.io.. + + +runtime.mapassign_faststr (20 samples, 0.20%) + + + +runtime.convTstring (43 samples, 0.43%) + + + +runtime.getMCache (3 samples, 0.03%) + + + +sync/atomic.(*Value).Load (4 samples, 0.04%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.scanManifest (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.scan (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).initCache (1 samples, 0.01%) + + + +runtime.(*mheap).freeSpan (27 samples, 0.27%) + + + +runtime.(*gcControllerState).trigger (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (2 samples, 0.02%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.makeSpanClass (1 samples, 0.01%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +os.statNolog (13 samples, 0.13%) + + + +reflect.name.isExported (2 samples, 0.02%) + + + +runtime.(*mheap).freeSpan.func1 (26 samples, 0.26%) + + + +runtime/internal/syscall.Syscall6 (1 samples, 0.01%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +runtime.lock (2 samples, 0.02%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +reflect.(*rtype).Name (12 samples, 0.12%) + + + +sync.(*Pool).pin (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/storage/cache.(*BoltDBDriver).PutBlob (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.memmove (31 samples, 0.31%) + + + +runtime.mallocgc (41 samples, 0.41%) + + + +runtime.mallocgc (4 samples, 0.04%) + + + +runtime.(*mcache).nextFree (2 samples, 0.02%) + + + +runtime.(*spanSet).push (1 samples, 0.01%) + + + +reflect.(*rtype).uncommon (2 samples, 0.02%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +memeqbody (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).scanArtifact (2 samples, 0.02%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.deductAssistCredit (1 samples, 0.01%) + + + +encoding/json.stateBeginString (2 samples, 0.02%) + + + +runtime.memmove (1 samples, 0.01%) + + + +encoding/json.(*decodeState).literalStore (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint32).Add (2 samples, 0.02%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.SetFinalizer (1 samples, 0.01%) + + + +runtime.(*activeSweep).markDrained (1 samples, 0.01%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +internal/poll.(*FD).ReadDirent (11 samples, 0.11%) + + + +encoding/json.stateInString (100 samples, 1.00%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.MissingBlobs (1 samples, 0.01%) + + + +runtime.markBits.isMarked (7 samples, 0.07%) + + + +runtime.arenaIndex (3 samples, 0.03%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +runtime.(*mspan).initHeapBits (2 samples, 0.02%) + + + +regexp.newLazyFlag (1 samples, 0.01%) + + + +runtime.mallocgc (9 samples, 0.09%) + + + +sort.swapRange (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.futexsleep (4 samples, 0.04%) + + + +runtime.(*mheap).initSpan (1 samples, 0.01%) + + + +fmt.(*pp).doPrintf (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/common.(*DedupeTaskGenerator).Next (2,972 samples, 29.78%) +zotregistry.io/zot/pkg/storage/common.(*DedupeT.. + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.(*sweepLocked).sweep (68 samples, 0.68%) + + + +sync.(*entry).load (1 samples, 0.01%) + + + +runtime.slicebytetostring (22 samples, 0.22%) + + + +github.com/aquasecurity/trivy-db/pkg/db.Config.GetVulnerability (2 samples, 0.02%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.BaseAuthzHandler.func1.1 (3 samples, 0.03%) + + + +reflect.Value.Elem (1 samples, 0.01%) + + + +reflect.(*rtype).uncommon (2 samples, 0.02%) + + + +fmt.(*fmt).fmtS (7 samples, 0.07%) + + + +fmt.(*pp).doPrintf (10 samples, 0.10%) + + + +runtime.gcWriteBarrierBX (2 samples, 0.02%) + + + +go.etcd.io/bbolt.(*page).fastCheck (2 samples, 0.02%) + + + +reflect.(*rtype).Elem (5 samples, 0.05%) + + + +sort.symMerge (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query (3 samples, 0.03%) + + + +runtime.pollWork (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (40 samples, 0.40%) + + + +reflect.New (3 samples, 0.03%) + + + +runtime.mapaccess2_faststr (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*node).spill (1 samples, 0.01%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +runtime.(*mheap).initSpan (1 samples, 0.01%) + + + +cmpbody (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +reflect.mapassign_faststr (4 samples, 0.04%) + + + +zotregistry.io/zot/pkg/extensions/sync.(*syncRepoTask).DoWork (119 samples, 1.19%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.convT (19 samples, 0.19%) + + + +encoding/json.indirect (12 samples, 0.12%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).List (34 samples, 0.34%) + + + +runtime.(*mheap).allocNeedsZero (1 samples, 0.01%) + + + +runtime.netpoll (2 samples, 0.02%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +os.newFile (5 samples, 0.05%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (2 samples, 0.02%) + + + +syscall.Getdents (7 samples, 0.07%) + + + +runtime.(*hmap).noldbuckets (2 samples, 0.02%) + + + +runtime.memclrNoHeapPointers (2 samples, 0.02%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +internal/poll.(*FD).ReadDirent (99 samples, 0.99%) + + + +os.Stat (8 samples, 0.08%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func22 (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Quer.. + + +github.com/aquasecurity/trivy/pkg/fanal/image.NewArchiveImage (1 samples, 0.01%) + + + +time.parseRFC3339[...].func1 (15 samples, 0.15%) + + + +reflect.name.name (1 samples, 0.01%) + + + +runtime.lock (4 samples, 0.04%) + + + +reflect.Value.Addr (1 samples, 0.01%) + + + +syscall.Syscall (1 samples, 0.01%) + + + +memeqbody (1 samples, 0.01%) + + + +github.com/opencontainers/go-digest.Digest.Validate (665 samples, 6.66%) +github.co.. + + +reflect.name.data (2 samples, 0.02%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +strconv.ParseUint (2 samples, 0.02%) + + + +net/http.ioFile.Read (1 samples, 0.01%) + + + +runtime.systemstack (2 samples, 0.02%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +reflect.(*rtype).String (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query + + +zotregistry.io/zot/pkg/storage/local.(*Driver).List (5 samples, 0.05%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.hashGrow (3 samples, 0.03%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/artifact/image.Artifact.Inspect (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +github.com/gorilla/mux.(*Route).Match (1 samples, 0.01%) + + + +runtime.(*mcentral).uncacheSpan (1 samples, 0.01%) + + + +runtime.heapBitsSetType (2 samples, 0.02%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +internal/poll.(*pollDesc).prepare (1 samples, 0.01%) + + + +aeshashbody (1 samples, 0.01%) + + + +encoding/json.stateEndValue (4 samples, 0.04%) + + + +encoding/base64.(*Encoding).decodeQuantum (2 samples, 0.02%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +runtime.trygetfull (137 samples, 1.37%) + + + +runtime.memclrNoHeapPointers (4 samples, 0.04%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (1 samples, 0.01%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +reflect.(*rtype).Elem (3 samples, 0.03%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +time.(*Location).lookup (2 samples, 0.02%) + + + +reflect.resolveNameOff (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +reflect.Value.Kind (5 samples, 0.05%) + + + +runtime.memmove (3 samples, 0.03%) + + + +reflect.Value.Convert (27 samples, 0.27%) + + + +sort.symMerge (131 samples, 1.31%) + + + +runtime.memclrNoHeapPointers (5 samples, 0.05%) + + + +encoding/json.stateBeginValueOrEmpty (2 samples, 0.02%) + + + +runtime.makemap (5 samples, 0.05%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func3 (3 samples, 0.03%) + + + +runtime.slicebytetostring (3 samples, 0.03%) + + + +runtime.(*_type).typeOff (2 samples, 0.02%) + + + +reflect.resolveTypeOff (1 samples, 0.01%) + + + +reflect.(*rtype).typeOff (1 samples, 0.01%) + + + +runtime.(*mSpanStateBox).get (5 samples, 0.05%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +runtime.(*consistentHeapStats).acquire (1 samples, 0.01%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +runtime.resolveTypeOff (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +reflect.Value.Interface (9 samples, 0.09%) + + + +runtime.gcAssistAlloc.func1 (1 samples, 0.01%) + + + +syscall.SetNonblock (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1.1 (3 samples, 0.03%) + + + +runtime.(*mcentral).cacheSpan (9 samples, 0.09%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +syscall.fstatat (13 samples, 0.13%) + + + +syscall.fcntl (3 samples, 0.03%) + + + +runtime.(*mheap).alloc.func1 (2 samples, 0.02%) + + + +syscall.Getdents (10 samples, 0.10%) + + + +encoding/json.(*decodeState).rescanLiteral (13 samples, 0.13%) + + + +os.(*File).Readdirnames (13 samples, 0.13%) + + + +encoding/json.stateBeginValue (4 samples, 0.04%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +os.ignoringEINTR (10 samples, 0.10%) + + + +runtime/internal/atomic.(*Uint8).Load (1 samples, 0.01%) + + + +runtime.(*mspan).init (1 samples, 0.01%) + + + +runtime.casgstatus (9 samples, 0.09%) + + + +runtime.(*mspan).nextFreeIndex (1 samples, 0.01%) + + + +reflect.name.name (2 samples, 0.02%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (6 samples, 0.06%) + + + +github.com/gorilla/mux.(*Router).Match (1 samples, 0.01%) + + + +strconv.ParseInt (10 samples, 0.10%) + + + +strconv.FormatInt (6 samples, 0.06%) + + + +github.com/gorilla/handlers.recoveryHandler.ServeHTTP (3 samples, 0.03%) + + + +sort.stable (18 samples, 0.18%) + + + +reflect.flag.kind (2 samples, 0.02%) + + + +runtime.lock (1 samples, 0.01%) + + + +runtime.(*lfstack).push (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).ScanImage (2 samples, 0.02%) + + + +github.com/knqyf263/go-deb-version.(*Version).Compare (2 samples, 0.02%) + + + +runtime.growWork_faststr (1 samples, 0.01%) + + + +runtime.makeslice (1 samples, 0.01%) + + + +encoding/json.isSpace (2 samples, 0.02%) + + + +fmt.Sprintf (1 samples, 0.01%) + + + +runtime.markroot.func1 (27 samples, 0.27%) + + + +reflect.Value.Set (2 samples, 0.02%) + + + +encoding/json.indirect (7 samples, 0.07%) + + + +runtime.makemap_small (1 samples, 0.01%) + + + +runtime.deductAssistCredit (1 samples, 0.01%) + + + +runtime.(*mheap).initSpan (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func23.1 (3 samples, 0.03%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.(*AuthnMiddleware).TryAuthnHandlers.func1.1 (3 samples, 0.03%) + + + +encoding/json.(*decodeState).array (1 samples, 0.01%) + + + +github.com/gorilla/mux.(*Route).Match (1 samples, 0.01%) + + + +runtime.gcDrain (1,665 samples, 16.68%) +runtime.gcDrain + + +fmt.(*pp).printArg (1 samples, 0.01%) + + + +runtime.lock2 (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +reflect.Value.Cap (1 samples, 0.01%) + + + +runtime.roundupsize (1 samples, 0.01%) + + + +runtime.add (1 samples, 0.01%) + + + +runtime.(*mheap).alloc (4 samples, 0.04%) + + + +encoding/json.unquoteBytes (12 samples, 0.12%) + + + +reflect.Value.CanAddr (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/common.AddExtensionSecurityHeaders.func1.1 (1 samples, 0.01%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/image.NewArchiveImage (1 samples, 0.01%) + + + +runtime.getempty (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/cve.BaseCveInfo.GetCVESummaryForImageMedia (1 samples, 0.01%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +os.ignoringEINTR (60 samples, 0.60%) + + + +runtime.puintptr.ptr (1 samples, 0.01%) + + + +runtime.heapBitsSetType (2 samples, 0.02%) + + + +runtime.heapBitsForAddr (9 samples, 0.09%) + + + +encoding/json.unquoteBytes (174 samples, 1.74%) + + + +github.com/99designs/gqlgen/graphql/handler.(*Server).ServeHTTP (4,930 samples, 49.40%) +github.com/99designs/gqlgen/graphql/handler.(*Server).ServeHTTP + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +errors.Is (1 samples, 0.01%) + + + +os.fillFileStatFromSys (9 samples, 0.09%) + + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +runtime.(*mcache).refill (4 samples, 0.04%) + + + +runtime.memmove (1 samples, 0.01%) + + + +syscall.fstatat (515 samples, 5.16%) +syscal.. + + +encoding/json.Unmarshal (1,158 samples, 11.60%) +encoding/json.Unm.. + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.lock (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +runtime.goschedIfBusy (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (1 samples, 0.01%) + + + +runtime.gcDrainN (3 samples, 0.03%) + + + +net/http.initALPNRequest.ServeHTTP (4,932 samples, 49.42%) +net/http.initALPNRequest.ServeHTTP + + +sort.StringSlice.Less (2 samples, 0.02%) + + + +github.com/rs/zerolog.(*Event).Msg (1 samples, 0.01%) + + + +sort.StringSlice.Less (3 samples, 0.03%) + + + +runtime.divRoundUp (2 samples, 0.02%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +encoding/json.stateEndValue (2 samples, 0.02%) + + + +runtime.(*limiterEvent).stop (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/detector/library.Detect (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +encoding/json.(*scanner).pushParseState (1 samples, 0.01%) + + + +time.parseStrictRFC3339 (71 samples, 0.71%) + + + +runtime.mapassign_faststr (18 samples, 0.18%) + + + +encoding/json.stateBeginStringOrEmpty (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (536 samples, 5.37%) +encodi.. + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.memmove (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.archiveStandaloneScanner (1 samples, 0.01%) + + + +runtime.newarray (9 samples, 0.09%) + + + +runtime.(*mSpanStateBox).set (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.runTrivy (2 samples, 0.02%) + + + +runtime.findObject (1 samples, 0.01%) + + + +runtime.(*atomicMSpanPointer).StoreNoWB (1 samples, 0.01%) + + + +reflect.makemap (5 samples, 0.05%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (17 samples, 0.17%) + + + +encoding/json.(*decodeState).rescanLiteral (9 samples, 0.09%) + + + +runtime.(*mcentral).grow (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/scheduler.(*Scheduler).RunScheduler.func1 (2,972 samples, 29.78%) +zotregistry.io/zot/pkg/scheduler.(*Scheduler).R.. + + +runtime.(*mspan).markBitsForIndex (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (4 samples, 0.04%) + + + +go.etcd.io/bbolt.(*branchPageElement).key (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func22 (3 samples, 0.03%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +sort.symMerge (1 samples, 0.01%) + + + +runtime.(*randomEnum).next (23 samples, 0.23%) + + + +encoding/json.indirect (1 samples, 0.01%) + + + +runtime.mallocgc (6 samples, 0.06%) + + + +runtime.(*mcache).nextFree (2 samples, 0.02%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +reflect.Value.SetMapIndex (10 samples, 0.10%) + + + +runtime/internal/syscall.Syscall6 (10 samples, 0.10%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +os.Stat (12 samples, 0.12%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +syscall.fstatat (60 samples, 0.60%) + + + +runtime.(*mcentral).uncacheSpan (1 samples, 0.01%) + + + +runtime.mProf_Malloc.func1 (1 samples, 0.01%) + + + +reflect.valueInterface (4 samples, 0.04%) + + + +runtime.newobject (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/scheduler.(*Scheduler).generateTasks (2,972 samples, 29.78%) +zotregistry.io/zot/pkg/scheduler.(*Scheduler).g.. + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +runtime/internal/syscall.EpollWait (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint8).Or (2 samples, 0.02%) + + + +runtime/internal/atomic.(*Uint32).CompareAndSwap (3 samples, 0.03%) + + + +runtime.procPin (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.(*gcBits).bytep (1 samples, 0.01%) + + + +regexp.(*Regexp).doOnePass (2 samples, 0.02%) + + + +runtime.growslice (3 samples, 0.03%) + + + +runtime.duffzero (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.futex (1 samples, 0.01%) + + + +runtime.nextFreeFast (2 samples, 0.02%) + + + +reflect.Value.Field (3 samples, 0.03%) + + + +encoding/json.(*decodeState).literalStore (42 samples, 0.42%) + + + +syscall.Syscall (6 samples, 0.06%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/sync.(*BaseService).syncTag (119 samples, 1.19%) + + + +encoding/binary.bigEndian.PutUint64 (61 samples, 0.61%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.RepoMeta2RepoSummary (1 samples, 0.01%) + + + +fmt.(*pp).handleMethods (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search.(*queryResolver).GlobalSearch (1 samples, 0.01%) + + + +runtime/internal/atomic.(*UnsafePointer).StoreNoWB (2 samples, 0.02%) + + + +go.etcd.io/bbolt.(*Tx).page (1 samples, 0.01%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +sort.rotate (1 samples, 0.01%) + + + +runtime.park_m (115 samples, 1.15%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +runtime.unlock2 (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.puintptr.ptr (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.growslice (2 samples, 0.02%) + + + +runtime.spanOfHeap (1 samples, 0.01%) + + + +runtime.(*mspan).refillAllocCache (1 samples, 0.01%) + + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.GetBlob (1 samples, 0.01%) + + + +runtime.heapBits.nextFast (12 samples, 0.12%) + + + +runtime.resolveNameOff (1 samples, 0.01%) + + + +runtime.makeSpanClass (2 samples, 0.02%) + + + +reflect.New (6 samples, 0.06%) + + + +github.com/containers/common/pkg/retry.IfNecessary (119 samples, 1.19%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.(*mcache).refill (7 samples, 0.07%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.(*gcControllerState).addIdleMarkWorker (1 samples, 0.01%) + + + +reflect.(*rtype).Kind (2 samples, 0.02%) + + + +time.resetTimer (1 samples, 0.01%) + + + +crypto/tls.(*Conn).readFromUntil (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql.(*FieldSet).Dispatch (4,930 samples, 49.40%) +github.com/99designs/gqlgen/graphql.(*FieldSet).Dispatch + + +reflect.Value.Len (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.fileInfo.IsDir (1 samples, 0.01%) + + + +encoding/json.isSpace (2 samples, 0.02%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +runtime.goschedImpl (6 samples, 0.06%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.(*mheap).freeMSpanLocked (1 samples, 0.01%) + + + +reflect.packEface (2 samples, 0.02%) + + + +runtime.pallocSum.unpack (1 samples, 0.01%) + + + +reflect.name.readVarint (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (3 samples, 0.03%) + + + +reflect.convertOp (1 samples, 0.01%) + + + +crypto/tls.(*Conn).readRecord (1 samples, 0.01%) + + + +reflect.makeString (7 samples, 0.07%) + + + +runtime/internal/syscall.Syscall6 (10 samples, 0.10%) + + + +time.Unix (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (120 samples, 1.20%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +runtime.scanblock (8 samples, 0.08%) + + + +syscall.RawSyscall6 (10 samples, 0.10%) + + + +regexp.(*Regexp).doExecute (2 samples, 0.02%) + + + +runtime.writeHeapBits.flush (6 samples, 0.06%) + + + +reflect.flag.kind (2 samples, 0.02%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.initializeArchiveScanner (1 samples, 0.01%) + + + +runtime.nanotime (1 samples, 0.01%) + + + +runtime.(*gcControllerState).memoryLimitHeapGoal (1 samples, 0.01%) + + + +regexp.(*Regexp).doMatch (66 samples, 0.66%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func24 (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Quer.. + + +reflect.MakeSlice (4 samples, 0.04%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.divRoundUp (3 samples, 0.03%) + + + +reflect.resolveTypeOff (1 samples, 0.01%) + + + +strings.IndexByte (4 samples, 0.04%) + + + +time.parseNanoseconds[...] (15 samples, 0.15%) + + + +sync.(*Pool).pin (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/common.AddExtensionSecurityHeaders.func1.1 (3 samples, 0.03%) + + + +encoding/json.cachedTypeFields (13 samples, 0.13%) + + + +syscall.Syscall6 (4 samples, 0.04%) + + + +runtime.(*atomicMSpanPointer).StoreNoWB (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Cursor).search (30 samples, 0.30%) + + + +syscall.Syscall (3 samples, 0.03%) + + + +os.statNolog (628 samples, 6.29%) +os.statN.. + + +reflect.flag.kind (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (4 samples, 0.04%) + + + +io.Copy (1 samples, 0.01%) + + + +cmpbody (4 samples, 0.04%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +runtime.newMarkBits (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.slicebytetostring (1 samples, 0.01%) + + + +sort.swapRange (16 samples, 0.16%) + + + +runtime.schedule (113 samples, 1.13%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func22 (1 samples, 0.01%) + + + +github.com/opencontainers/go-digest.Digest.Validate (2 samples, 0.02%) + + + +encoding/json.(*scanner).popParseState (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +time.tzset (1 samples, 0.01%) + + + +sort.StringSlice.Swap (9 samples, 0.09%) + + + +runtime.slicebytetostring (6 samples, 0.06%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query_GlobalSearch (3 samples, 0.03%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +runtime.arenaIndex (1 samples, 0.01%) + + + +runtime.pcvalue (1 samples, 0.01%) + + + +regexp.newOnePassMachine (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (3 samples, 0.03%) + + + +reflect.unsafe_New (4 samples, 0.04%) + + + +runtime.(*mcache).allocLarge (1 samples, 0.01%) + + + +runtime.isEmpty (1 samples, 0.01%) + + + +reflect.MakeMap (3 samples, 0.03%) + + + +syscall.Getdents (6 samples, 0.06%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query_GlobalSearch.func2 (1 samples, 0.01%) + + + +reflect.Value.assignTo (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Cursor).search (8 samples, 0.08%) + + + +github.com/gorilla/handlers.recoveryHandler.ServeHTTP (1 samples, 0.01%) + + + +runtime.(*lfstack).pop (2 samples, 0.02%) + + + +encoding/json.unquoteBytes (31 samples, 0.31%) + + + +regexp/syntax.(*Inst).MatchRunePos (216 samples, 2.16%) +r.. + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query_GlobalSearch (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Quer.. + + +encoding/json.getu4 (3 samples, 0.03%) + + + +runtime.newobject (1 samples, 0.01%) + + + +sort.swapRange (14 samples, 0.14%) + + + +runtime.roundupsize (1 samples, 0.01%) + + + +runtime.(*mSpanStateBox).set (1 samples, 0.01%) + + + +regexp/syntax.(*Inst).MatchRune (248 samples, 2.48%) +re.. + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.mallocgc (10 samples, 0.10%) + + + +runtime.(*mheap).initSpan (1 samples, 0.01%) + + + +runtime.newobject (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetVendor (3 samples, 0.03%) + + + +reflect.cvtBytesString (9 samples, 0.09%) + + + +runtime.deductAssistCredit (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (47 samples, 0.47%) + + + +syscall.RawSyscall6 (3 samples, 0.03%) + + + +syscall.BytePtrFromString (3 samples, 0.03%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +encoding/json.stateEndValue (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (3 samples, 0.03%) + + + +runtime.(*mspan).init (1 samples, 0.01%) + + + +sync.(*entry).load (1 samples, 0.01%) + + + +runtime.(*spanSet).push (5 samples, 0.05%) + + + +reflect.flag.ro (1 samples, 0.01%) + + + +runtime.growslice (1 samples, 0.01%) + + + +reflect.(*rtype).Name (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +runtime.mProf_Malloc (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (1 samples, 0.01%) + + + +encoding/json.indirect (14 samples, 0.14%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).ScanImage (7 samples, 0.07%) + + + +runtime.memclrNoHeapPointers (3 samples, 0.03%) + + + +syscall.Syscall6 (10 samples, 0.10%) + + + +reflect.typedmemmove (1 samples, 0.01%) + + + +runtime.mapaccess1_fast32 (1 samples, 0.01%) + + + +runtime.(*atomicHeadTailIndex).cas (2 samples, 0.02%) + + + +runtime.divRoundUp (2 samples, 0.02%) + + + +reflect.(*rtype).NumMethod (7 samples, 0.07%) + + + +runtime.memmove (3 samples, 0.03%) + + + +cmpbody (5 samples, 0.05%) + + + +sort.symMerge (11 samples, 0.11%) + + + +os.(*File).Readdirnames (221 samples, 2.21%) +o.. + + +runtime.bgscavenge (35 samples, 0.35%) + + + +internal/poll.errnoErr (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (2 samples, 0.02%) + + + +runtime.(*atomicHeadTailIndex).incTail (1 samples, 0.01%) + + + +runtime.hashGrow (6 samples, 0.06%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.getLayersSummaries (28 samples, 0.28%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func22 (3 samples, 0.03%) + + + +runtime.growslice (3 samples, 0.03%) + + + +sort.StringSlice.Less (1 samples, 0.01%) + + + +runtime.(*mcache).refill (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/fanal/artifact/image.Artifact.Inspect (1 samples, 0.01%) + + + +runtime.newobject (4 samples, 0.04%) + + + +runtime.gcMarkDone (5 samples, 0.05%) + + + +runtime.(*pageAlloc).scavenge (33 samples, 0.33%) + + + +syscall.Read (3 samples, 0.03%) + + + +runtime.callers (2 samples, 0.02%) + + + +encoding/json.(*decodeState).value (254 samples, 2.55%) +en.. + + +github.com/aquasecurity/trivy/pkg/scanner.Scanner.ScanArtifact (2 samples, 0.02%) + + + +reflect.flag.kind (7 samples, 0.07%) + + + +runtime.gcmarknewobject (1 samples, 0.01%) + + + +go.etcd.io/bbolt.unsafeByteSlice (1 samples, 0.01%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +encoding/json.(*decodeState).array (584 samples, 5.85%) +encodin.. + + +runtime.(*gcControllerState).heapGoalInternal (2 samples, 0.02%) + + + +runtime.(*bmap).keys (1 samples, 0.01%) + + + +runtime.(*mspan).refillAllocCache (1 samples, 0.01%) + + + +runtime.pidleget (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +io.CopyN (1 samples, 0.01%) + + + +internal/testlog.Stat (7 samples, 0.07%) + + + +runtime.newarray (6 samples, 0.06%) + + + +reflect.New (1 samples, 0.01%) + + + +fmt.(*fmt).fmtS (1 samples, 0.01%) + + + +runtime.systemstack (2 samples, 0.02%) + + + +runtime.heapBitsSetType (3 samples, 0.03%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/image.newImage (1 samples, 0.01%) + + + +internal/poll.ignoringEINTRIO (8 samples, 0.08%) + + + +encoding/json.stateBeginString (1 samples, 0.01%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +runtime.(*mheap).alloc (2 samples, 0.02%) + + + +runtime.gcTrigger.test (1 samples, 0.01%) + + + +reflect.ValueOf (1 samples, 0.01%) + + + +memeqbody (1 samples, 0.01%) + + + +runtime.unlock (1 samples, 0.01%) + + + +runtime.scanstack (23 samples, 0.23%) + + + +syscall.RawSyscall6 (10 samples, 0.10%) + + + +reflect.PointerTo (2 samples, 0.02%) + + + +runtime.memclrNoHeapPointers (4 samples, 0.04%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func3 (3 samples, 0.03%) + + + +encoding/json.indirect (1 samples, 0.01%) + + + +reflect.(*rtype).NumMethod (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +encoding/json.stateEndTop (1 samples, 0.01%) + + + +runtime.deductAssistCredit (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func3 (3 samples, 0.03%) + + + +runtime.makeslice (25 samples, 0.25%) + + + +reflect.Value.Kind (2 samples, 0.02%) + + + +runtime.(*sweepLocker).tryAcquire (11 samples, 0.11%) + + + +runtime.bool2int (2 samples, 0.02%) + + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +reflect.(*rtype).NumMethod (2 samples, 0.02%) + + + +runtime.newobject (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +runtime.arenaIdx.l1 (1 samples, 0.01%) + + + +runtime.suspendG (4 samples, 0.04%) + + + +runtime/internal/atomic.(*Uintptr).Add (4 samples, 0.04%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +path.Base (1 samples, 0.01%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +regexp.(*Regexp).doMatch (633 samples, 6.34%) +regexp.(.. + + +os.statNolog (12 samples, 0.12%) + + + +reflect.(*rtype).exportedMethods (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (40 samples, 0.40%) + + + +runtime.(*atomicMSpanPointer).StoreNoWB (1 samples, 0.01%) + + + +runtime.gcTrigger.test (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/scanner.Scanner.ScanArtifact (6 samples, 0.06%) + + + +runtime.memclrNoHeapPointers (2 samples, 0.02%) + + + +go.etcd.io/bbolt.(*Bucket).pageNode (2 samples, 0.02%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.(*lfstack).pop (2 samples, 0.02%) + + + +reflect.Value.Field (4 samples, 0.04%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +internal/poll.(*FD).decref (2 samples, 0.02%) + + + +reflect.Copy (4 samples, 0.04%) + + + +runtime.exitsyscallfast_reacquired (2 samples, 0.02%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.(*fixalloc).alloc (1 samples, 0.01%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (3 samples, 0.03%) + + + +runtime/internal/atomic.(*Bool).Load (3 samples, 0.03%) + + + +runtime.(*mspan).objIndex (1 samples, 0.01%) + + + +syscall.Stat (13 samples, 0.13%) + + + +runtime.mallocgc (20 samples, 0.20%) + + + +reflect.resolveTypeOff (1 samples, 0.01%) + + + +runtime.writeHeapBits.write (2 samples, 0.02%) + + + +runtime.lock (1 samples, 0.01%) + + + +syscall.RawSyscall6 (10 samples, 0.10%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.ScanImage (2 samples, 0.02%) + + + +reflect.Value.SetLen (1 samples, 0.01%) + + + +os.readIntLE (1 samples, 0.01%) + + + +reflect.(*rtype).Elem (1 samples, 0.01%) + + + +sort.symMerge (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +encoding/json.stateEndValue (1 samples, 0.01%) + + + +runtime.mallocgc (6 samples, 0.06%) + + + +runtime.(*bucket).mp (1 samples, 0.01%) + + + +runtime.spanOf (1 samples, 0.01%) + + + +encoding/json.(*decodeState).scanWhile (5 samples, 0.05%) + + + +runtime.acquirem (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*DB).View (1 samples, 0.01%) + + + +time.(*Time).setLoc (1 samples, 0.01%) + + + +reflect.(*rtype).typeOff (2 samples, 0.02%) + + + +internal/poll.(*FD).Init (1 samples, 0.01%) + + + +reflect.Value.Convert (13 samples, 0.13%) + + + +syscall.Stat (7 samples, 0.07%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +cmpbody (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*branchPageElement).key (2 samples, 0.02%) + + + +encoding/json.(*decodeState).value (938 samples, 9.40%) +encoding/json.. + + +runtime.slicebytetostring (6 samples, 0.06%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +runtime.wbBufFlush (2 samples, 0.02%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.mPark (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (1 samples, 0.01%) + + + +runtime.spanOf (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +runtime.(*bmap).keys (1 samples, 0.01%) + + + +encoding/json.(*decodeState).array (6 samples, 0.06%) + + + +sort.swapRange (9 samples, 0.09%) + + + +cmpbody (2 samples, 0.02%) + + + +runtime.(*activeSweep).isDone (1 samples, 0.01%) + + + +runtime.checkTimers (1 samples, 0.01%) + + + +runtime.(*fixalloc).alloc (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/common.ACHeadersMiddleware.func1.1 (1 samples, 0.01%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +runtime.(*lfstack).empty (2 samples, 0.02%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +reflect.ifaceIndir (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/sync.(*LocalRegistry).CommitImage (119 samples, 1.19%) + + + +runtime.slicebytetostring (21 samples, 0.21%) + + + +reflect.ifaceIndir (2 samples, 0.02%) + + + +reflect.ValueOf (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (101 samples, 1.01%) + + + +aeshashbody (2 samples, 0.02%) + + + +runtime.releasem (1 samples, 0.01%) + + + +runtime.(*mcentral).uncacheSpan (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy-db/pkg/db.Config.ForEachAdvisory (1 samples, 0.01%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +path.Clean (9 samples, 0.09%) + + + +runtime.mapassign_faststr (1 samples, 0.01%) + + + +runtime.findObject (1 samples, 0.01%) + + + +encoding/json.stateEndValue (4 samples, 0.04%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +runtime.getLockRank (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (13 samples, 0.13%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Walk (348 samples, 3.49%) +zot.. + + +time.(*Time).stripMono (1 samples, 0.01%) + + + +encoding/json.(*decodeState).literalStore (6 samples, 0.06%) + + + +runtime.(*gcWork).putBatch (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (1 samples, 0.01%) + + + +reflect.add (1 samples, 0.01%) + + + +runtime.acquirem (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Bucket).spill (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +runtime.memmove (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Int64).Add (1 samples, 0.01%) + + + +runtime.mallocgc (5 samples, 0.05%) + + + +runtime/internal/atomic.(*Uint64).Add (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +reflect.(*rtype).exportedMethods (1 samples, 0.01%) + + + +reflect.(*rtype).hasName (1 samples, 0.01%) + + + +runtime.mallocgc (5 samples, 0.05%) + + + +runtime.getempty (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +runtime.cmpstring (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executableSchema).Exec.func1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/common.ACHeadersMiddleware.func1.1 (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/common.ACHeadersMiddleware.func1.1 + + +regexp.(*inputString).step (115 samples, 1.15%) + + + +runtime.(*mcentral).uncacheSpan (1 samples, 0.01%) + + + +encoding/json.stateEndValue (1 samples, 0.01%) + + + +runtime.procPin (1 samples, 0.01%) + + + +runtime.futex (1 samples, 0.01%) + + + +reflect.unpackEface (1 samples, 0.01%) + + + +runtime.memmove (3 samples, 0.03%) + + + +runtime.gentraceback (1 samples, 0.01%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +runtime.newarray (10 samples, 0.10%) + + + +runtime.(*mcentral).cacheSpan (3 samples, 0.03%) + + + +runtime.(*mcache).refill (3 samples, 0.03%) + + + +runtime.callers (1 samples, 0.01%) + + + +runtime.makeslice (25 samples, 0.25%) + + + +sync.(*Map).Load (1 samples, 0.01%) + + + +strconv.formatBits (5 samples, 0.05%) + + + +encoding/json.unquoteBytes (4 samples, 0.04%) + + + +runtime.runqsteal (1 samples, 0.01%) + + + +runtime.(*stackScanState).getPtr (1 samples, 0.01%) + + + +os.Stat (83 samples, 0.83%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query_GlobalSearch.func2 (3 samples, 0.03%) + + + +runtime.(*randomEnum).next (1 samples, 0.01%) + + + +encoding/json.(*decodeState).scanNext (2 samples, 0.02%) + + + +reflect.add (4 samples, 0.04%) + + + +github.com/99designs/gqlgen/graphql/handler/transport.GET.Do (4,930 samples, 49.40%) +github.com/99designs/gqlgen/graphql/handler/transport.GET.Do + + +os.direntNamlen (3 samples, 0.03%) + + + +runtime.unlock (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (2 samples, 0.02%) + + + +reflect.(*rtype).typeOff (1 samples, 0.01%) + + + +syscall.RawSyscall6 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/meta/boltdb.(*BoltDB).SearchRepos (2,225 samples, 22.29%) +zotregistry.io/zot/pkg/meta/boltdb... + + +reflect.Value.SetBytes (1 samples, 0.01%) + + + +runtime.lockWithRank (4 samples, 0.04%) + + + +zotregistry.io/zot/pkg/storage/common.(*dedupeTask).DoWork (2 samples, 0.02%) + + + +runtime.assertE2I2 (4 samples, 0.04%) + + + +reflect.(*rtype).String (2 samples, 0.02%) + + + +reflect.Value.Kind (2 samples, 0.02%) + + + +go.etcd.io/bbolt.unsafeAdd (1 samples, 0.01%) + + + +reflect.Value.SetMapIndex (1 samples, 0.01%) + + + +time.atoi[...] (3 samples, 0.03%) + + + +runtime.mallocgc (10 samples, 0.10%) + + + +reflect.flag.mustBe (1 samples, 0.01%) + + + +reflect.flag.mustBeExported (1 samples, 0.01%) + + + +runtime.heapBitsSetType (4 samples, 0.04%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint32).CompareAndSwap (1 samples, 0.01%) + + + +aeshashbody (5 samples, 0.05%) + + + +syscall.fstatat (10 samples, 0.10%) + + + +runtime.acquirem (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (5 samples, 0.05%) + + + +time.(*Location).lookup (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*DB).View (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).scanArtifact (7 samples, 0.07%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +runtime.(*mspan).nextFreeIndex (1 samples, 0.01%) + + + +runtime.modtimer (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*DB).View (1 samples, 0.01%) + + + +reflect.Value.OverflowInt (2 samples, 0.02%) + + + +runtime.(*mheap).allocMSpanLocked (4 samples, 0.04%) + + + +runtime.callers.func1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.SessionLogger.func1.1 (3 samples, 0.03%) + + + +reflect.(*rtype).String (11 samples, 0.11%) + + + +runtime.mallocgc (4 samples, 0.04%) + + + +runtime.lockRankMayQueueFinalizer (3 samples, 0.03%) + + + +sync.(*Map).Load (4 samples, 0.04%) + + + +runtime.entersyscall (1 samples, 0.01%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +os.(*File).readdir (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).WriteFile (2 samples, 0.02%) + + + +go.etcd.io/bbolt.(*Cursor).search (52 samples, 0.52%) + + + +github.com/aquasecurity/trivy/pkg/detector/ospkg/ubuntu.(*Scanner).Detect (1 samples, 0.01%) + + + +runtime.heapBitsSetType (2 samples, 0.02%) + + + +runtime.findRunnable (111 samples, 1.11%) + + + +runtime.typehash (4 samples, 0.04%) + + + +zotregistry.io/zot/pkg/common.AddExtensionSecurityHeaders.func1.1 (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/common.AddExtensionSecurityHeaders.func1.1 + + +runtime.(*mheap).tryAllocMSpan (1 samples, 0.01%) + + + +runtime.mallocgc (4 samples, 0.04%) + + + +regexp.newLazyFlag (3 samples, 0.03%) + + + +runtime.mallocgc (6 samples, 0.06%) + + + +regexp.freeOnePassMachine (7 samples, 0.07%) + + + +runtime.memclrNoHeapPointers (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func23.1 (3 samples, 0.03%) + + + +runtime.newobject (1 samples, 0.01%) + + + +runtime.(*lfstack).push (96 samples, 0.96%) + + + +runtime/internal/atomic.(*UnsafePointer).StoreNoWB (1 samples, 0.01%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/sync.(*BaseService).SyncRepo (119 samples, 1.19%) + + + +runtime.nextFreeFast (5 samples, 0.05%) + + + +zotregistry.io/zot/pkg/storage/imagestore.(*ImageStore).GetNextDigestWithBlobPaths (2,972 samples, 29.78%) +zotregistry.io/zot/pkg/storage/imagestore.(*Ima.. + + +runtime.gentraceback (2 samples, 0.02%) + + + +sort.symMerge (85 samples, 0.85%) + + + +sort.stable (182 samples, 1.82%) +s.. + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func22 (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/scanner.Scanner.ScanArtifact (2 samples, 0.02%) + + + +runtime.mapaccess1_fast32 (1 samples, 0.01%) + + + +runtime.makeslice (42 samples, 0.42%) + + + +github.com/google/go-containerregistry/pkg/v1/layout.(*layoutIndex).findDescriptor (1 samples, 0.01%) + + + +runtime.mallocgc (15 samples, 0.15%) + + + +encoding/json.stateEndValue (6 samples, 0.06%) + + + +encoding/json.(*decodeState).readIndex (1 samples, 0.01%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (98 samples, 0.98%) + + + +runtime.writeHeapBits.write (2 samples, 0.02%) + + + +encoding/json.(*decodeState).object (360 samples, 3.61%) +enco.. + + +runtime.futexsleep (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.makeBucketArray (1 samples, 0.01%) + + + +runtime.reentersyscall (1 samples, 0.01%) + + + +fmt.(*pp).printArg (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1 (3 samples, 0.03%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +runtime.newobject (3 samples, 0.03%) + + + +runtime.(*mcache).refill (2 samples, 0.02%) + + + +reflect.packEface (2 samples, 0.02%) + + + +encoding/json.(*decodeState).literalStore (170 samples, 1.70%) + + + +reflect.flag.kind (2 samples, 0.02%) + + + +errors.Is (13 samples, 0.13%) + + + +runtime.(*mcache).refill (3 samples, 0.03%) + + + +runtime.memhash64 (4 samples, 0.04%) + + + +os.newFile (2 samples, 0.02%) + + + +sync.runtime_procPin (2 samples, 0.02%) + + + +runtime.(*mheap).alloc.func1 (2 samples, 0.02%) + + + +reflect.MakeMapWithSize (1 samples, 0.01%) + + + +sort.StringSlice.Swap (11 samples, 0.11%) + + + +reflect.(*rtype).uncommon (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/meta/boltdb.(*BoltDB).SearchRepos (1 samples, 0.01%) + + + +strings.Index (2 samples, 0.02%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +encoding/json.stateBeginValue (2 samples, 0.02%) + + + +encoding/json.indirect (2 samples, 0.02%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +encoding/json.stateBeginValue (2 samples, 0.02%) + + + +memeqbody (4 samples, 0.04%) + + + +syscall.SetNonblock (3 samples, 0.03%) + + + +github.com/opencontainers/go-digest.Algorithm.Validate (68 samples, 0.68%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint64).Store (1 samples, 0.01%) + + + +reflect.name.name (7 samples, 0.07%) + + + +internal/poll.(*pollDesc).init (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.updateImageSummaryVulnerabilities (8 samples, 0.08%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Walk (2,972 samples, 29.78%) +zotregistry.io/zot/pkg/storage/local.(*Driver)... + + +runtime.(*stackScanState).addObject (1 samples, 0.01%) + + + +runtime.growslice (16 samples, 0.16%) + + + +reflect.Value.Set (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func4 (3 samples, 0.03%) + + + +runtime.typedmemmove (1 samples, 0.01%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +runtime.(*mcache).releaseAll (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (5 samples, 0.05%) + + + +encoding/json.(*decodeState).scanNext (12 samples, 0.12%) + + + +runtime.(*mheap).allocMSpanLocked (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +reflect.Value.IsNil (2 samples, 0.02%) + + + +go.etcd.io/bbolt.unsafeByteSlice (2 samples, 0.02%) + + + +go.etcd.io/bbolt.(*Cursor).seek (1 samples, 0.01%) + + + +sync.(*Pool).Get (1 samples, 0.01%) + + + +encoding/json.(*decodeState).array (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.(*pageAlloc).update (11 samples, 0.11%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +runtime.nextFreeFast (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search.globalSearch (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/extensions/search.globalSearch + + +reflect.Value.Kind (4 samples, 0.04%) + + + +runtime.handoff (292 samples, 2.93%) +ru.. + + +memeqbody (3 samples, 0.03%) + + + +runtime.(*mspan).init (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint32).CompareAndSwap (1 samples, 0.01%) + + + +os.openFileNolog (8 samples, 0.08%) + + + +reflect.Value.Type (1 samples, 0.01%) + + + +runtime.procPin (1 samples, 0.01%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +runtime.mapiternext (3 samples, 0.03%) + + + +encoding/json.(*decodeState).literalStore (2 samples, 0.02%) + + + +go.etcd.io/bbolt.(*Tx).page (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (3 samples, 0.03%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/common.CORSHeadersMiddleware.func1.1 (3 samples, 0.03%) + + + +reflect.Value.Type (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/sync.(*LocalRegistry).copyManifest (119 samples, 1.19%) + + + +aeshashbody (2 samples, 0.02%) + + + +reflect.Value.Index (4 samples, 0.04%) + + + +runtime.checkIdleGCNoP (6 samples, 0.06%) + + + +aeshashbody (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search.globalSearch (3 samples, 0.03%) + + + +reflect.packEface (6 samples, 0.06%) + + + +runtime.(*spanSet).push (1 samples, 0.01%) + + + +embed.(*openFile).Read (1 samples, 0.01%) + + + +reflect.(*rtype).String (7 samples, 0.07%) + + + +os.OpenFile (2 samples, 0.02%) + + + +runtime.(*fixalloc).alloc (1 samples, 0.01%) + + + +runtime.typedmemmove (2 samples, 0.02%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*node).spill (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (3 samples, 0.03%) + + + +runtime.(*lfstack).pop (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.callers (1 samples, 0.01%) + + + +syscall.ByteSliceFromString (7 samples, 0.07%) + + + +runtime.mallocgc (8 samples, 0.08%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.runqsteal (10 samples, 0.10%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.funcInfo.entry (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/meta/boltdb.fetchManifestMetaWithCheck (1,909 samples, 19.13%) +zotregistry.io/zot/pkg/meta/b.. + + +runtime.(*_type).typeOff (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Int64).Load (1 samples, 0.01%) + + + +runtime.(*consistentHeapStats).release (2 samples, 0.02%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.SessionAuditLogger.func1.1 (3 samples, 0.03%) + + + +encoding/json.(*decodeState).value (1,263 samples, 12.66%) +encoding/json.(*dec.. + + +syscall.RawSyscall6 (1 samples, 0.01%) + + + +reflect.MakeMapWithSize (3 samples, 0.03%) + + + +reflect.Value.Type (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +sync.(*Pool).pin (5 samples, 0.05%) + + + +encoding/json.indirect (1 samples, 0.01%) + + + +runtime.mallocgc (15 samples, 0.15%) + + + +runtime.divRoundUp (2 samples, 0.02%) + + + +encoding/json.(*decodeState).value (269 samples, 2.70%) +en.. + + +runtime/internal/syscall.Syscall6 (1 samples, 0.01%) + + + +reflect.unsafe_NewArray (10 samples, 0.10%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +os.direntIno (1 samples, 0.01%) + + + +reflect.valueInterface (2 samples, 0.02%) + + + +runtime.mapaccess2_faststr (4 samples, 0.04%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +errors.Is (3 samples, 0.03%) + + + +runtime.(*consistentHeapStats).acquire (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.(*fixalloc).alloc (1 samples, 0.01%) + + + +runtime.nanotime (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +runtime.packPallocSum (1 samples, 0.01%) + + + +runtime.spanClass.noscan (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query (1 samples, 0.01%) + + + +runtime.makeslice (4 samples, 0.04%) + + + +fmt.(*pp).doPrintf (1 samples, 0.01%) + + + +reflect.(*rtype).String (6 samples, 0.06%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.exitsyscall (1 samples, 0.01%) + + + +internal/testlog.Logger (5 samples, 0.05%) + + + +runtime.convTslice (5 samples, 0.05%) + + + +runtime.(*fixalloc).alloc (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +os.statNolog.func1 (13 samples, 0.13%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func3 (1 samples, 0.01%) + + + +runtime.lock2 (2 samples, 0.02%) + + + +runtime.(*mheap).alloc (3 samples, 0.03%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +runtime.convTstring (5 samples, 0.05%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/scheduler.(*Scheduler).getTask (2,972 samples, 29.78%) +zotregistry.io/zot/pkg/scheduler.(*Scheduler).g.. + + +runtime.printlock (1 samples, 0.01%) + + + +internal/poll.ignoringEINTRIO (7 samples, 0.07%) + + + +encoding/json.stateBeginString (3 samples, 0.03%) + + + +reflect.MakeMap (9 samples, 0.09%) + + + +runtime.gcMarkWorkAvailable (2 samples, 0.02%) + + + +runtime.mapaccess2_faststr (11 samples, 0.11%) + + + +runtime.stealWork (2 samples, 0.02%) + + + +runtime.gcMarkWorkAvailable (5 samples, 0.05%) + + + +reflect.Value.Len (1 samples, 0.01%) + + + +runtime.(*mspan).initHeapBits (1 samples, 0.01%) + + + +reflect.Value.Convert (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*page).branchPageElements (3 samples, 0.03%) + + + +reflect.Value.Elem (3 samples, 0.03%) + + + +runtime.heapBits.next (15 samples, 0.15%) + + + +reflect.flag.mustBeAssignable (2 samples, 0.02%) + + + +runtime.spanOf (1 samples, 0.01%) + + + +encoding/json.checkValid (1 samples, 0.01%) + + + +runtime.slicebytetostring (7 samples, 0.07%) + + + +reflect.typedmemmove (1 samples, 0.01%) + + + +syscall.Getdents (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Int64).CompareAndSwap (1 samples, 0.01%) + + + +runtime.gcStart (1 samples, 0.01%) + + + +encoding/json.stateEndTop (2 samples, 0.02%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.callers (1 samples, 0.01%) + + + +runtime.wbBufFlush.func1 (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetAnnotationValue (1 samples, 0.01%) + + + +runtime.(*itabTableType).find (4 samples, 0.04%) + + + +reflect.Value.IsNil (3 samples, 0.03%) + + + +runtime.growslice (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/meta/boltdb.NewManifestMetadata (11 samples, 0.11%) + + + +runtime.(*lfstack).empty (2 samples, 0.02%) + + + +runtime.handoff (2 samples, 0.02%) + + + +runtime.(*lfstack).push (83 samples, 0.83%) + + + +runtime.greyobject (303 samples, 3.04%) +run.. + + +syscall.BytePtrFromString (51 samples, 0.51%) + + + +zotregistry.io/zot/pkg/extensions/search.(*queryResolver).GlobalSearch (3 samples, 0.03%) + + + +runtime.mProf_FlushLocked (4 samples, 0.04%) + + + +zotregistry.io/zot/pkg/common.AddExtensionSecurityHeaders.func1.1 (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/fanal/image.tryOCI (1 samples, 0.01%) + + + +runtime.mapaccess2 (1 samples, 0.01%) + + + +reflect.Value.assignTo (2 samples, 0.02%) + + + +encoding/json.stateEndValue (1 samples, 0.01%) + + + +runtime.gcAssistAlloc (3 samples, 0.03%) + + + +runtime.(*mcache).nextFree (5 samples, 0.05%) + + + +runtime.mapaccess1_fast32 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.getLayersSummaries (32 samples, 0.32%) + + + +syscall.RawSyscall6 (6 samples, 0.06%) + + + +encoding/json.(*decodeState).readIndex (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func2 (3 samples, 0.03%) + + + +encoding/json.(*decodeState).scanWhile (4 samples, 0.04%) + + + +encoding/json.stateInString (1 samples, 0.01%) + + + +fmt.(*pp).fmtString (1 samples, 0.01%) + + + +runtime.(*mspan).initHeapBits (2 samples, 0.02%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.updateImageSummaryVulnerabilities (2 samples, 0.02%) + + + +reflect.Value.IsNil (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (2 samples, 0.02%) + + + +runtime.newobject (5 samples, 0.05%) + + + +reflect.(*rtype).NumMethod (11 samples, 0.11%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executableSchema).Exec.func1 (3 samples, 0.03%) + + + +runtime.assertE2I2 (2 samples, 0.02%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.heapBitsSetType (2 samples, 0.02%) + + + +syscall.Syscall6 (11 samples, 0.11%) + + + +encoding/json.(*decodeState).object (921 samples, 9.23%) +encoding/json.. + + +runtime.procyield (1 samples, 0.01%) + + + +sync.(*Map).Load (10 samples, 0.10%) + + + +runtime/internal/atomic.(*UnsafePointer).StoreNoWB (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (218 samples, 2.18%) +e.. + + +zotregistry.io/zot/pkg/extensions/search/convert.updateRepoSummaryVulnerabilities (8 samples, 0.08%) + + + +runtime.callers (1 samples, 0.01%) + + + +encoding/json.(*decodeState).unmarshal (939 samples, 9.41%) +encoding/json.. + + +reflect.add (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Walk (2,855 samples, 28.61%) +zotregistry.io/zot/pkg/storage/local.(*Driver.. + + +github.com/opencontainers/go-digest.NewDigestFromEncoded (194 samples, 1.94%) +g.. + + +os.statNolog.func1 (10 samples, 0.10%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +reflect.Value.Field (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (4 samples, 0.04%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +reflect.Value.SetString (2 samples, 0.02%) + + + +runtime.addspecial (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.Stack (1 samples, 0.01%) + + + +runtime.convT64 (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +encoding/json.indirect (1 samples, 0.01%) + + + +runtime.makemap (2 samples, 0.02%) + + + +encoding/json.(*decodeState).readIndex (1 samples, 0.01%) + + + +runtime.futex (1 samples, 0.01%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +runtime.getempty (1 samples, 0.01%) + + + +runtime.(*mcache).refill (2 samples, 0.02%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +os.(*file).close (2 samples, 0.02%) + + + +sort.swapRange (3 samples, 0.03%) + + + +syscall.ReadDirent (7 samples, 0.07%) + + + +runtime.fastrand (1 samples, 0.01%) + + + +runtime.(*mSpanStateBox).get (1 samples, 0.01%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (2 samples, 0.02%) + + + +runtime.growslice (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.RepoMeta2RepoSummary (2,697 samples, 27.02%) +zotregistry.io/zot/pkg/extensions/search/co.. + + +crypto/tls.(*atLeastReader).Read (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +reflect.(*rtype).String (2 samples, 0.02%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.deductAssistCredit (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/meta/boltdb.(*BoltDB).SearchRepos.func1 (1 samples, 0.01%) + + + +github.com/gorilla/handlers.recoveryHandler.ServeHTTP (4,931 samples, 49.41%) +github.com/gorilla/handlers.recoveryHandler.ServeHTTP + + +runtime.mProf_Malloc (1 samples, 0.01%) + + + +runtime.(*scavengerState).init.func2 (34 samples, 0.34%) + + + +bytes.(*Buffer).ReadFrom (1 samples, 0.01%) + + + +runtime.(*gcControllerState).enlistWorker (1 samples, 0.01%) + + + +reflect.cvtBytesString (1 samples, 0.01%) + + + +sort.StringSlice.Less (3 samples, 0.03%) + + + +reflect.makeString (14 samples, 0.14%) + + + +reflect.Value.Cap (2 samples, 0.02%) + + + +syscall.ByteSliceFromString (47 samples, 0.47%) + + + +runtime.mapaccess2_faststr (3 samples, 0.03%) + + + +runtime.unlockWithRank (2 samples, 0.02%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +bufio.(*Writer).Write (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.Descriptor2ImageSummary (2,640 samples, 26.45%) +zotregistry.io/zot/pkg/extensions/search/c.. + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (1 samples, 0.01%) + + + +net/http.serverHandler.ServeHTTP (3 samples, 0.03%) + + + +runtime.mProf_Malloc (1 samples, 0.01%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +runtime.unlockWithRank (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +runtime.getitab (13 samples, 0.13%) + + + +fmt.Sprintf (1 samples, 0.01%) + + + +net.(*netFD).Read (1 samples, 0.01%) + + + +runtime.(*gcWork).tryGet (220 samples, 2.20%) +r.. + + +runtime.newobject (4 samples, 0.04%) + + + +github.com/aquasecurity/trivy/pkg/scanner.Scanner.ScanArtifact (1 samples, 0.01%) + + + +runtime.(*itabTableType).find (10 samples, 0.10%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +fmt.(*pp).free (9 samples, 0.09%) + + + +reflect.(*uncommonType).exportedMethods (3 samples, 0.03%) + + + +runtime.(*mcache).refill (2 samples, 0.02%) + + + +runtime.(*mcentral).uncacheSpan (2 samples, 0.02%) + + + +encoding/json.isSpace (2 samples, 0.02%) + + + +runtime.wakep (1 samples, 0.01%) + + + +runtime.(*gcControllerState).trigger (2 samples, 0.02%) + + + +runtime.markBits.setMarked (1 samples, 0.01%) + + + +net/http.serverHandler.ServeHTTP (4,932 samples, 49.42%) +net/http.serverHandler.ServeHTTP + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +runtime.runqgrab (8 samples, 0.08%) + + + +runtime.scanstack.func1 (16 samples, 0.16%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +runtime.bucketEvacuated (1 samples, 0.01%) + + + +reflect.Value.Kind (2 samples, 0.02%) + + + +encoding/json.stateInStringEscU123 (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetAnnotationValue (6 samples, 0.06%) + + + +reflect.name.data (1 samples, 0.01%) + + + +runtime.arenaIdx.l2 (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/image.tryOCI (1 samples, 0.01%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.getImageBlobsInfo (13 samples, 0.13%) + + + +reflect.(*rtype).Kind (3 samples, 0.03%) + + + +runtime.(*maptype).indirectkey (2 samples, 0.02%) + + + +internal/poll.(*FD).Read (3 samples, 0.03%) + + + +encoding/json.(*decodeState).value (362 samples, 3.63%) +enco.. + + +reflect.PointerTo (1 samples, 0.01%) + + + +runtime.procPin (1 samples, 0.01%) + + + +path.Join (3 samples, 0.03%) + + + +runtime.entersyscall (22 samples, 0.22%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/imagestore.(*ImageStore).FullBlobUpload (118 samples, 1.18%) + + + +reflect.MakeSlice (26 samples, 0.26%) + + + +runtime.(*mheap).alloc (6 samples, 0.06%) + + + +runtime.lfstackUnpack (1 samples, 0.01%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +runtime.casgstatus (1 samples, 0.01%) + + + +strconv.ParseInt (2 samples, 0.02%) + + + +time.parseStrictRFC3339 (12 samples, 0.12%) + + + +encoding/json.(*decodeState).array (1 samples, 0.01%) + + + +os.(*File).write (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +runtime.gcstopm (1 samples, 0.01%) + + + +runtime.mallocgc (4 samples, 0.04%) + + + +zotregistry.io/zot/pkg/extensions.addUISecurityHeaders.func1 (1 samples, 0.01%) + + + +encoding/json.stateEndValue (3 samples, 0.03%) + + + +encoding/json.stateEndValue (1 samples, 0.01%) + + + +runtime.mapaccess2 (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +internal/poll.(*FD).ReadDirent (8 samples, 0.08%) + + + +encoding/json.Unmarshal (2 samples, 0.02%) + + + +encoding/json.(*decodeState).array (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +reflect.(*rtype).typeOff (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.SessionAuditLogger.func1.1 (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).scanArtifact (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func23 (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uintptr).Add (2 samples, 0.02%) + + + +indexbytebody (2 samples, 0.02%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +fmt.Sprintf (15 samples, 0.15%) + + + +reflect.ifaceIndir (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).scanArtifact (1 samples, 0.01%) + + + +reflect.flag.mustBeExported (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Int64).Add (4 samples, 0.04%) + + + +runtime.(*gcControllerState).heapGoalInternal (1 samples, 0.01%) + + + +os.(*File).Readdirnames (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/common.AddExtensionSecurityHeaders.func1.1 (3 samples, 0.03%) + + + +runtime.exitsyscall (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +encoding/json.(*decodeState).literalStore (1 samples, 0.01%) + + + +runtime.(*bmap).keys (1 samples, 0.01%) + + + +runtime.callers.func1 (1 samples, 0.01%) + + + +regexp.(*Regexp).allMatches (1 samples, 0.01%) + + + +reflect.Value.Field (8 samples, 0.08%) + + + +zotregistry.io/zot/pkg/extensions/search.globalSearch (3 samples, 0.03%) + + + +runtime.getMCache (2 samples, 0.02%) + + + +reflect.(*rtype).Elem (2 samples, 0.02%) + + + +runtime/internal/atomic.(*Uint64).Add (1 samples, 0.01%) + + + +runtime.(*mspan).refillAllocCache (1 samples, 0.01%) + + + +internal/poll.(*FD).Close (2 samples, 0.02%) + + + +runtime.newarray (3 samples, 0.03%) + + + +encoding/json.stateInStringEscU12 (1 samples, 0.01%) + + + +encoding/base64.(*Encoding).Decode (319 samples, 3.20%) +enc.. + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (1 samples, 0.01%) + + + +fmt.(*pp).handleMethods (44 samples, 0.44%) + + + +reflect.(*rtype).exportedMethods (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (2 samples, 0.02%) + + + +reflect.flag.mustBeAssignable (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.(*AuthnMiddleware).TryAuthnHandlers.func1.1 (1 samples, 0.01%) + + + +regexp.(*Regexp).doExecute (66 samples, 0.66%) + + + +encoding/json.stateBeginValue (4 samples, 0.04%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +os.statNolog (81 samples, 0.81%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Cursor).nsearch (5 samples, 0.05%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +os.(*File).readdir (221 samples, 2.21%) +o.. + + +runtime.procyield (2 samples, 0.02%) + + + +runtime.SetFinalizer (1 samples, 0.01%) + + + +syscall.Close (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.spanOf (90 samples, 0.90%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +github.com/knqyf263/go-deb-version.extract (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.runTrivy (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.runqempty (1 samples, 0.01%) + + + +internal/reflectlite.TypeOf (1 samples, 0.01%) + + + +runtime.gcWriteBarrierCX (1 samples, 0.01%) + + + +reflect.resolveTypeOff (1 samples, 0.01%) + + + +encoding/json.stateBeginValue (1 samples, 0.01%) + + + +runtime.arenaIdx.l2 (1 samples, 0.01%) + + + +runtime.(*mspan).objIndex (21 samples, 0.21%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +syscall.RawSyscall6 (3 samples, 0.03%) + + + +go.etcd.io/bbolt.(*Cursor).searchPage.func1 (2 samples, 0.02%) + + + +runtime.mapaccess2 (14 samples, 0.14%) + + + +runtime.gcTrigger.test (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +path.Base (87 samples, 0.87%) + + + +sort.rotate (5 samples, 0.05%) + + + +github.com/99designs/gqlgen/graphql/handler/transport.GET.Do (1 samples, 0.01%) + + + +fmt.(*buffer).writeString (4 samples, 0.04%) + + + +encoding/json.(*decodeState).scanWhile (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (934 samples, 9.36%) +encoding/json.. + + +encoding/json.(*scanner).pushParseState (3 samples, 0.03%) + + + +encoding/json.stateInStringEsc (6 samples, 0.06%) + + + +syscall.fcntl (2 samples, 0.02%) + + + +runtime.getLockRank (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (3 samples, 0.03%) + + + +crypto/sha256.block (62 samples, 0.62%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +encoding/json.(*decodeState).array (400 samples, 4.01%) +enco.. + + +path.Clean (5 samples, 0.05%) + + + +reflect.(*rtype).typeOff (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.updateImageSummaryVulnerabilities (2 samples, 0.02%) + + + +reflect.Value.Kind (2 samples, 0.02%) + + + +reflect.(*rtype).ptrTo (1 samples, 0.01%) + + + +runtime.spanOf (1 samples, 0.01%) + + + +runtime/internal/atomic.(*UnsafePointer).StoreNoWB (1 samples, 0.01%) + + + +sort.StringSlice.Swap (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.findObject (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.PaginatedRepoMeta2RepoSummaries (2 samples, 0.02%) + + + +os.Open (7 samples, 0.07%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +runtime.systemstack (1,665 samples, 16.68%) +runtime.systemstack + + +internal/reflectlite.toType (2 samples, 0.02%) + + + +sort.StringSlice.Swap (2 samples, 0.02%) + + + +syscall.SetNonblock (1 samples, 0.01%) + + + +reflect.flag.kind (2 samples, 0.02%) + + + +runtime.gcMarkWorkAvailable (2 samples, 0.02%) + + + +regexp/syntax.(*Inst).MatchRune (27 samples, 0.27%) + + + +runtime.bucketMask (1 samples, 0.01%) + + + +regexp.(*bitState).push (1 samples, 0.01%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +encoding/json.stateBeginValue (4 samples, 0.04%) + + + +runtime.(*mspan).markBitsForIndex (1 samples, 0.01%) + + + +path.(*lazybuf).string (2 samples, 0.02%) + + + +runtime.(*pageAlloc).scavengeOne (33 samples, 0.33%) + + + +reflect.unsafe_New (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +os.fillFileStatFromSys (49 samples, 0.49%) + + + +runtime.growslice (6 samples, 0.06%) + + + +reflect.ValueOf (2 samples, 0.02%) + + + +os.(*File).Close (1 samples, 0.01%) + + + +runtime.heapBitsSetType (10 samples, 0.10%) + + + +runtime.newarray (1 samples, 0.01%) + + + +memeqbody (12 samples, 0.12%) + + + +sync.(*Pool).pin (1 samples, 0.01%) + + + +reflect.Value.Addr (5 samples, 0.05%) + + + +fmt.(*pp).printArg (1 samples, 0.01%) + + + +reflect.mapassign_faststr (8 samples, 0.08%) + + + +encoding/json.indirect (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (15 samples, 0.15%) + + + +path.(*lazybuf).append (3 samples, 0.03%) + + + +os.(*File).readdir (12 samples, 0.12%) + + + +runtime.(*spanSet).push (1 samples, 0.01%) + + + +runtime.(*mheap).freeSpanLocked (21 samples, 0.21%) + + + +runtime.unlock2 (1 samples, 0.01%) + + + +runtime.(*_type).typeOff (7 samples, 0.07%) + + + +runtime.funcspdelta (1 samples, 0.01%) + + + +encoding/json.indirect (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.ScanImage (1 samples, 0.01%) + + + +path.Join (10 samples, 0.10%) + + + +encoding/json.(*decodeState).scanWhile (2 samples, 0.02%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.(*lfstack).empty (3 samples, 0.03%) + + + +syscall.RawSyscall6 (98 samples, 0.98%) + + + +net/http.HandlerFunc.ServeHTTP (4,930 samples, 49.40%) +net/http.HandlerFunc.ServeHTTP + + +go.etcd.io/bbolt.unsafeAdd (1 samples, 0.01%) + + + +sync.runtime_procUnpin (1 samples, 0.01%) + + + +runtime.lockRankMayQueueFinalizer (2 samples, 0.02%) + + + +encoding/json.(*decodeState).scanWhile (4 samples, 0.04%) + + + +runtime.procPin (2 samples, 0.02%) + + + +github.com/gorilla/mux.(*Router).ServeHTTP (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/detector/library.detect (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.profilealloc (2 samples, 0.02%) + + + +sync.(*Pool).Put (6 samples, 0.06%) + + + +time.leadingInt[...] (2 samples, 0.02%) + + + +runtime.lock (8 samples, 0.08%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +runtime.(*mSpanStateBox).set (1 samples, 0.01%) + + + +io.Copy (1 samples, 0.01%) + + + +runtime.nextFreeFast (2 samples, 0.02%) + + + +encoding/json.stateBeginValue (4 samples, 0.04%) + + + +regexp.(*Regexp).doMatch (2 samples, 0.02%) + + + +path.lastSlash (16 samples, 0.16%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +runtime/internal/atomic.(*UnsafePointer).StoreNoWB (1 samples, 0.01%) + + + +internal/bytealg.IndexByteString (1 samples, 0.01%) + + + +encoding/json.Unmarshal (289 samples, 2.90%) +en.. + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.runTrivy (8 samples, 0.08%) + + + +reflect.name.readVarint (1 samples, 0.01%) + + + +runtime.mallocgc (8 samples, 0.08%) + + + +runtime.(*mheap).allocSpan (3 samples, 0.03%) + + + +sort.rotate (2 samples, 0.02%) + + + +runtime.callers.func1 (2 samples, 0.02%) + + + +regexp.(*Regexp).MatchString (2 samples, 0.02%) + + + +fmt.Sprintf (3 samples, 0.03%) + + + +path.Clean (2 samples, 0.02%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Tx).page (3 samples, 0.03%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.newobject (2 samples, 0.02%) + + + +reflect.Value.Elem (2 samples, 0.02%) + + + +net/http.(*fileHandler).ServeHTTP (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/scanner/local.Scanner.scanVulnerabilities (3 samples, 0.03%) + + + +runtime.(*mcentral).grow (8 samples, 0.08%) + + + +reflect.Value.Type (2 samples, 0.02%) + + + +reflect.Value.Kind (4 samples, 0.04%) + + + +reflect.Value.Addr (2 samples, 0.02%) + + + +reflect.Value.SetMapIndex (26 samples, 0.26%) + + + +go.etcd.io/bbolt.(*Bucket).pageNode (1 samples, 0.01%) + + + +runtime.(*randomEnum).position (1 samples, 0.01%) + + + +runtime.entersyscall (1 samples, 0.01%) + + + +path.Join (11 samples, 0.11%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func2 (4,930 samples, 49.40%) +github.com/99designs/gqlgen/graphql/executor.processExtensions.func2 + + +runtime.(*mspan).divideByElemSize (7 samples, 0.07%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +reflect.flag.kind (2 samples, 0.02%) + + + +runtime.typedmemclr (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.getBlob (1 samples, 0.01%) + + + +fmt.newPrinter (25 samples, 0.25%) + + + +reflect.Value.CanAddr (3 samples, 0.03%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.systemstack (2 samples, 0.02%) + + + +reflect.convertOp (4 samples, 0.04%) + + + +encoding/json.stateBeginValueOrEmpty (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +sort.symMerge (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/common.ACHeadersMiddleware.func1.1 (3 samples, 0.03%) + + + +runtime.newobject (2 samples, 0.02%) + + + +encoding/json.(*decodeState).rescanLiteral (135 samples, 1.35%) + + + +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1 (1 samples, 0.01%) + + + +encoding/json.stateEndValue (2 samples, 0.02%) + + + +reflect.(*rtype).typeOff (8 samples, 0.08%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +encoding/json.(*decodeState).array (1 samples, 0.01%) + + + +reflect.Value.Interface (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func3 (4,930 samples, 49.40%) +github.com/99designs/gqlgen/graphql/executor.processExtensions.func3 + + +sync.(*Map).Load (3 samples, 0.03%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +runtime.growslice (1 samples, 0.01%) + + + +runtime.lock2 (1 samples, 0.01%) + + + +os.OpenFile (8 samples, 0.08%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +encoding/json.cachedTypeFields (4 samples, 0.04%) + + + +regexp.(*Regexp).MatchString (634 samples, 6.35%) +regexp.(.. + + +runtime.systemstack (3 samples, 0.03%) + + + +runtime.heapBitsSetType (2 samples, 0.02%) + + + +runtime.mapaccess2_faststr (9 samples, 0.09%) + + + +encoding/json.checkValid (213 samples, 2.13%) +e.. + + +runtime.pMask.read (9 samples, 0.09%) + + + +indexbytebody (2 samples, 0.02%) + + + +sort.StringSlice.Less (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +runtime.mapassign_faststr (8 samples, 0.08%) + + + +runtime.bucketShift (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint32).CompareAndSwap (1 samples, 0.01%) + + + +indexbytebody (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (2 samples, 0.02%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +encoding/json.(*decodeState).array (1 samples, 0.01%) + + + +runtime.slicebytetostring (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.releasem (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.runTrivy (2 samples, 0.02%) + + + +runtime.systemstack (4 samples, 0.04%) + + + +reflect.(*rtype).exportedMethods (3 samples, 0.03%) + + + +runtime.mapaccess2_faststr (5 samples, 0.05%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +encoding/json.(*decodeState).scanWhile (5 samples, 0.05%) + + + +runtime.profilealloc (1 samples, 0.01%) + + + +runtime.newAllocBits (1 samples, 0.01%) + + + +internal/poll.runtime_pollOpen (1 samples, 0.01%) + + + +runtime.lockRankMayQueueFinalizer (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetAnnotationValue (2 samples, 0.02%) + + + +fmt.(*pp).printValue (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Int64).Load (6 samples, 0.06%) + + + +runtime.entersyscall (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.scanManifest (2 samples, 0.02%) + + + +runtime.(*bmap).overflow (1 samples, 0.01%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.lockWithRank (2 samples, 0.02%) + + + +runtime.(*gcCPULimiterState).addIdleTime (1 samples, 0.01%) + + + +runtime.findObject (1 samples, 0.01%) + + + +runtime.advanceEvacuationMark (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (2 samples, 0.02%) + + + +runtime.slicebytetostring (2 samples, 0.02%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint64).CompareAndSwap (4 samples, 0.04%) + + + +github.com/aquasecurity/trivy-db/pkg/db.Config.forEach (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +os.ignoringEINTR (7 samples, 0.07%) + + + +runtime.(*mcache).prepareForSweep (1 samples, 0.01%) + + + +reflect.name.name (2 samples, 0.02%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +runtime.lock (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/common.Contains[...] (4 samples, 0.04%) + + + +runtime.(*mspan).nextFreeIndex (1 samples, 0.01%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +reflect.Value.SetString (1 samples, 0.01%) + + + +runtime.newobject (4 samples, 0.04%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +bytes.growSlice (51 samples, 0.51%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.ImageManifest2ImageSummary (1 samples, 0.01%) + + + +runtime.madvise (26 samples, 0.26%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +encoding/json.stateEndValue (6 samples, 0.06%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (2 samples, 0.02%) + + + +syscall.fstatat (7 samples, 0.07%) + + + +encoding/json.(*decodeState).value (347 samples, 3.48%) +enc.. + + +runtime.unlock (1 samples, 0.01%) + + + +runtime.nextFreeFast (2 samples, 0.02%) + + + +runtime/internal/syscall.Syscall6 (1 samples, 0.01%) + + + +time.(*Location).lookup (1 samples, 0.01%) + + + +runtime.(*mheap).alloc.func1 (3 samples, 0.03%) + + + +encoding/json.(*decodeState).readIndex (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query_GlobalSearch.func2 (3 samples, 0.03%) + + + +runtime.slicebytetostring (1 samples, 0.01%) + + + +runtime.divRoundUp (4 samples, 0.04%) + + + +sort.stable (1 samples, 0.01%) + + + +runtime.makeslice (1 samples, 0.01%) + + + +reflect.New (2 samples, 0.02%) + + + +go.etcd.io/bbolt.(*Cursor).search (46 samples, 0.46%) + + + +time.Unix (1 samples, 0.01%) + + + +encoding/json.cachedTypeFields (5 samples, 0.05%) + + + +reflect.name.readVarint (6 samples, 0.06%) + + + +reflect.Value.Addr (1 samples, 0.01%) + + + +sort.insertionSort (7 samples, 0.07%) + + + +encoding/json.stateBeginValue (15 samples, 0.15%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func23 (3 samples, 0.03%) + + + +runtime.lock2 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.(*AuthnMiddleware).TryAuthnHandlers.func1.1 (3 samples, 0.03%) + + + +reflect.implements (2 samples, 0.02%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +reflect.(*rtype).Kind (2 samples, 0.02%) + + + +runtime.deductSweepCredit (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/artifact/image.Artifact.Inspect (1 samples, 0.01%) + + + +reflect.Value.Elem (7 samples, 0.07%) + + + +reflect.(*rtype).hasName (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.procPin (2 samples, 0.02%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +reflect.name.readVarint (7 samples, 0.07%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +runtime.mallocgc (7 samples, 0.07%) + + + +runtime.heapBitsSetType (2 samples, 0.02%) + + + +encoding/json.stateBeginValue (12 samples, 0.12%) + + + +github.com/99designs/gqlgen/graphql.(*FieldSet).Dispatch (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/extensions/search/cve.BaseCveInfo.GetCVESummaryForImageMedia (2 samples, 0.02%) + + + +runtime.sysUnusedOS (26 samples, 0.26%) + + + +reflect.flag.mustBeAssignable (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (12 samples, 0.12%) + + + +runtime/internal/atomic.(*Uint8).Store (1 samples, 0.01%) + + + +runtime.divRoundUp (6 samples, 0.06%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +sort.symMerge (123 samples, 1.23%) + + + +runtime.mallocgc (25 samples, 0.25%) + + + +runtime.releasem (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/sync.(*LocalRegistry).copyBlob (119 samples, 1.19%) + + + +fmt.(*pp).fmtString (7 samples, 0.07%) + + + +runtime/internal/atomic.(*Uint32).Add (1 samples, 0.01%) + + + +runtime.mapaccess2 (1 samples, 0.01%) + + + +runtime.futex (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search.(*queryResolver).GlobalSearch (3 samples, 0.03%) + + + +runtime.readgstatus (1 samples, 0.01%) + + + +runtime.gcWriteBarrierSI (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Stat (8 samples, 0.08%) + + + +go.etcd.io/bbolt.(*Cursor).searchPage (21 samples, 0.21%) + + + +runtime.(*mcentral).uncacheSpan (1 samples, 0.01%) + + + +runtime.gcAssistAlloc (1 samples, 0.01%) + + + +syscall.RawSyscall6 (1 samples, 0.01%) + + + +runtime.packPallocSum (1 samples, 0.01%) + + + +reflect.makemap (1 samples, 0.01%) + + + +sort.StringSlice.Swap (1 samples, 0.01%) + + + +runtime.(*pollCache).free (1 samples, 0.01%) + + + +runtime.markroot (35 samples, 0.35%) + + + +go.etcd.io/bbolt.(*DB).View (1 samples, 0.01%) + + + +runtime.putempty (1 samples, 0.01%) + + + +runtime.newobject (5 samples, 0.05%) + + + +runtime.newobject (1 samples, 0.01%) + + + +runtime.(*mspan).refillAllocCache (1 samples, 0.01%) + + + +reflect.arrayAt (1 samples, 0.01%) + + + +strconv.ParseInt (3 samples, 0.03%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +sync.(*Map).loadReadOnly (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +sort.StringSlice.Swap (10 samples, 0.10%) + + + +runtime.(*mSpanStateBox).set (1 samples, 0.01%) + + + +encoding/json.checkValid (35 samples, 0.35%) + + + +reflect.(*rtype).Implements (2 samples, 0.02%) + + + +reflect.(*rtype).Name (4 samples, 0.04%) + + + +reflect.MakeMapWithSize (1 samples, 0.01%) + + + +runtime.slicebytetostring (2 samples, 0.02%) + + + +runtime.rawbyteslice (5 samples, 0.05%) + + + +os.(*File).read (3 samples, 0.03%) + + + +runtime.(*mspan).nextFreeIndex (1 samples, 0.01%) + + + +runtime.(*mSpanStateBox).set (1 samples, 0.01%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +runtime.gcWriteBarrierDX (1 samples, 0.01%) + + + +runtime.(*moduledata).textAddr (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetSource (1 samples, 0.01%) + + + +github.com/opencontainers/go-digest.Algorithm.Available (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +fmt.(*pp).printArg (64 samples, 0.64%) + + + +reflect.Value.SetString (3 samples, 0.03%) + + + +runtime.nextSample (1 samples, 0.01%) + + + +runtime.newobject (1 samples, 0.01%) + + + +regexp.(*Regexp).doOnePass (628 samples, 6.29%) +regexp.(.. + + +regexp.freeOnePassMachine (1 samples, 0.01%) + + + +reflect.name.name (1 samples, 0.01%) + + + +github.com/gorilla/handlers.recoveryHandler.ServeHTTP (3 samples, 0.03%) + + + +runtime.mapaccess2 (1 samples, 0.01%) + + + +os.readIntLE (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (10 samples, 0.10%) + + + +runtime.convT64 (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Bucket).pageNode (3 samples, 0.03%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (3 samples, 0.03%) + + + +runtime.(*mheap).initSpan (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.nextFreeFast (2 samples, 0.02%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +reflect.name.data (3 samples, 0.03%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +syscall.RawSyscall6 (47 samples, 0.47%) + + + +syscall.Close (2 samples, 0.02%) + + + +reflect.mapassign_faststr (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/handler/transport.GET.Do (3 samples, 0.03%) + + + +encoding/json.(*decodeState).literalStore (55 samples, 0.55%) + + + +os.direntIno (7 samples, 0.07%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.lockWithRank (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetAnnotationValue (2 samples, 0.02%) + + + +runtime.slicebytetostring (2 samples, 0.02%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +runtime.(*gcControllerState).heapGoalInternal (1 samples, 0.01%) + + + +runtime.gcTrigger.test (1 samples, 0.01%) + + + +fmt.getField (1 samples, 0.01%) + + + +reflect.(*rtype).nameOff (1 samples, 0.01%) + + + +bytes.Compare (5 samples, 0.05%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.updateRepoSummaryVulnerabilities (1 samples, 0.01%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +sync.runtime_procPin (1 samples, 0.01%) + + + +runtime.divRoundUp (2 samples, 0.02%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func2 (3 samples, 0.03%) + + + +encoding/json.stateBeginValue (3 samples, 0.03%) + + + +runtime.reentersyscall (1 samples, 0.01%) + + + +runtime.memmove (1 samples, 0.01%) + + + +runtime.readUintptr (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.MissingBlobs.func1 (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/scanner/langpkg.(*scanner).Scan (1 samples, 0.01%) + + + +reflect.Value.SetInt (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetTitle (2 samples, 0.02%) + + + +encoding/json.(*decodeState).array (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Bucket).CreateBucket (1 samples, 0.01%) + + + +runtime.(*mcache).refill (2 samples, 0.02%) + + + +regexp.(*Regexp).tryBacktrack (1 samples, 0.01%) + + + +sort.swapRange (2 samples, 0.02%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +github.com/opencontainers/go-digest.NewDigestFromEncoded (2 samples, 0.02%) + + + +runtime.spanOf (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*DB).View (1 samples, 0.01%) + + + +runtime.futex (1 samples, 0.01%) + + + +sort.Search (2 samples, 0.02%) + + + +encoding/json.isSpace (5 samples, 0.05%) + + + +zotregistry.io/zot/pkg/scheduler.(*Scheduler).poolWorker.func1 (121 samples, 1.21%) + + + +runtime.hashGrow (1 samples, 0.01%) + + + +runtime.mProf_Flush (4 samples, 0.04%) + + + +runtime.getLockRank (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.GetDescription (1 samples, 0.01%) + + + +runtime.heapBitsSetType (4 samples, 0.04%) + + + +os.Stat (13 samples, 0.13%) + + + +time.parseNanoseconds[...] (3 samples, 0.03%) + + + +runtime.mallocgc (10 samples, 0.10%) + + + +runtime.nextFreeFast (4 samples, 0.04%) + + + +reflect.Value.assignTo (1 samples, 0.01%) + + + +reflect.Value.Len (3 samples, 0.03%) + + + +runtime.findObject (1 samples, 0.01%) + + + +runtime.stopm (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (28 samples, 0.28%) + + + +reflect.(*rtype).Key (1 samples, 0.01%) + + + +cmpbody (5 samples, 0.05%) + + + +net/http.(*http2Framer).ReadFrame (1 samples, 0.01%) + + + +runtime.(*spanSet).push (1 samples, 0.01%) + + + +reflect.MakeMap (6 samples, 0.06%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +reflect.toType (2 samples, 0.02%) + + + +runtime.mallocgc (16 samples, 0.16%) + + + +runtime.growWork_faststr (13 samples, 0.13%) + + + +reflect.flag.mustBeAssignable (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.(*gcWork).put (2 samples, 0.02%) + + + +runtime.isEmpty (1 samples, 0.01%) + + + +strconv.formatBits (7 samples, 0.07%) + + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (252 samples, 2.53%) +en.. + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func4 (3 samples, 0.03%) + + + +syscall.Syscall (1 samples, 0.01%) + + + +runtime.markrootBlock (7 samples, 0.07%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql.(*FieldSet).Dispatch (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.getBlob (1 samples, 0.01%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +strings.genSplit (1 samples, 0.01%) + + + +reflect.makemap (1 samples, 0.01%) + + + +runtime.markBits.isMarked (1 samples, 0.01%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +runtime.memmove (2 samples, 0.02%) + + + +runtime.(*mspan).markBitsForIndex (81 samples, 0.81%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.assertE2I2 (4 samples, 0.04%) + + + +runtime.putempty (1 samples, 0.01%) + + + +reflect.Value.SetString (4 samples, 0.04%) + + + +runtime.acquirem (1 samples, 0.01%) + + + +net/http.(*http2serverConn).readFrames (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.GetBlob.func1 (1 samples, 0.01%) + + + +reflect.(*uncommonType).exportedMethods (3 samples, 0.03%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search.globalSearch (1 samples, 0.01%) + + + +encoding/json.state1 (4 samples, 0.04%) + + + +fmt.(*pp).printValue (1 samples, 0.01%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +runtime.spanOfUnchecked (6 samples, 0.06%) + + + +reflect.name.data (1 samples, 0.01%) + + + +runtime.exitsyscallfast_reacquired (1 samples, 0.01%) + + + +runtime.sysUnused (26 samples, 0.26%) + + + +internal/poll.(*FD).ReadDirent (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/storage/local.fileInfo.IsDir (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy/pkg/detector/library.detect (1 samples, 0.01%) + + + +runtime.resolveTypeOff (1 samples, 0.01%) + + + +reflect.New (17 samples, 0.17%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +runtime.memmove (3 samples, 0.03%) + + + +memeqbody (1 samples, 0.01%) + + + +reflect.typedslicecopy (4 samples, 0.04%) + + + +sort.rotate (6 samples, 0.06%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +sort.swapRange (2 samples, 0.02%) + + + +encoding/json.stateBeginString (5 samples, 0.05%) + + + +encoding/json.stateBeginValue (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (4,930 samples, 49.40%) +net/http.HandlerFunc.ServeHTTP + + +runtime.(*mspan).init (2 samples, 0.02%) + + + +runtime.SetFinalizer.func2 (1 samples, 0.01%) + + + +os.Open (9 samples, 0.09%) + + + +sort.StringSlice.Less (3 samples, 0.03%) + + + +internal/poll.(*fdMutex).incref (1 samples, 0.01%) + + + +fmt.(*pp).doPrintf (1 samples, 0.01%) + + + +runtime.growWork_faststr (7 samples, 0.07%) + + + +runtime.mallocgc (17 samples, 0.17%) + + + +runtime.heapBitsSetType (4 samples, 0.04%) + + + +reflect.Value.Elem (10 samples, 0.10%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +encoding/json.isSpace (5 samples, 0.05%) + + + +encoding/json.(*decodeState).rescanLiteral (3 samples, 0.03%) + + + +runtime.(*_type).typeOff (1 samples, 0.01%) + + + +runtime.mapaccess2_faststr (1 samples, 0.01%) + + + +reflect.Value.IsNil (3 samples, 0.03%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/detector/library.(*Driver).DetectVulnerabilities (1 samples, 0.01%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +runtime.divRoundUp (3 samples, 0.03%) + + + +internal/poll.(*pollDesc).init (1 samples, 0.01%) + + + +runtime.gcAssistAlloc1 (3 samples, 0.03%) + + + +encoding/json.(*decodeState).value (2 samples, 0.02%) + + + +runtime.gcBgMarkWorker (1,681 samples, 16.84%) +runtime.gcBgMarkWorker + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.mapiterinit (6 samples, 0.06%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +sort.symMerge (8 samples, 0.08%) + + + +runtime.heapBitsSetType (3 samples, 0.03%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +encoding/json.indirect (2 samples, 0.02%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/handler.(*Server).ServeHTTP (3 samples, 0.03%) + + + +runtime.unlock2 (2 samples, 0.02%) + + + +runtime.divRoundUp (4 samples, 0.04%) + + + +runtime.bulkBarrierPreWrite (1 samples, 0.01%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +encoding/json.stateBeginString (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/api.BaseAuthzHandler.func1.1 (1 samples, 0.01%) + + + +runtime.getitab (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.scanManifest (1 samples, 0.01%) + + + +runtime.memmove (1 samples, 0.01%) + + + +reflect.Value.IsValid (1 samples, 0.01%) + + + +runtime.growslice (6 samples, 0.06%) + + + +reflect.MakeSlice (26 samples, 0.26%) + + + +sync.(*Pool).Get (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query_GlobalSearch (3 samples, 0.03%) + + + +reflect.(*rtype).NumMethod (1 samples, 0.01%) + + + +encoding/json.checkValid (323 samples, 3.24%) +enc.. + + +runtime.slicebytetostring (14 samples, 0.14%) + + + +github.com/opencontainers/go-digest.Digest.Validate (71 samples, 0.71%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.lockWithRankMayAcquire (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (3 samples, 0.03%) + + + +runtime.callers.func1 (1 samples, 0.01%) + + + +path.(*lazybuf).string (1 samples, 0.01%) + + + +syscall.Open (3 samples, 0.03%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query (3 samples, 0.03%) + + + +runtime/internal/atomic.(*Uint64).Add (2 samples, 0.02%) + + + +runtime.exitsyscallfast (4 samples, 0.04%) + + + +runtime.lockWithRankMayAcquire (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy-db/pkg/types.(*Advisory).UnmarshalJSON (1 samples, 0.01%) + + + +strconv.ParseUint (3 samples, 0.03%) + + + +encoding/json.unquoteBytes (477 samples, 4.78%) +encod.. + + +runtime.slicebytetostring (22 samples, 0.22%) + + + +runtime.gcMarkTermination.func4.1 (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint64).CompareAndSwap (2 samples, 0.02%) + + + +runtime.(*spanSet).pop (1 samples, 0.01%) + + + +encoding/json.indirect (24 samples, 0.24%) + + + +encoding/json.unquoteBytes (2 samples, 0.02%) + + + +runtime.(*limiterEvent).start (1 samples, 0.01%) + + + +os.(*File).Close (1 samples, 0.01%) + + + +encoding/json.indirect (7 samples, 0.07%) + + + +runtime.profilealloc (1 samples, 0.01%) + + + +syscall.Syscall (1 samples, 0.01%) + + + +runtime.acquirem (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +reflect.Value.Index (1 samples, 0.01%) + + + +runtime.systemstack (3 samples, 0.03%) + + + +runtime.mapaccess2 (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (23 samples, 0.23%) + + + +syscall.ReadDirent (98 samples, 0.98%) + + + +runtime.(*gcBits).bytep (1 samples, 0.01%) + + + +runtime.(*sweepLocked).sweep (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (12 samples, 0.12%) + + + +reflect.MakeMapWithSize (6 samples, 0.06%) + + + +zotregistry.io/zot/pkg/extensions/search.globalSearch (3 samples, 0.03%) + + + +runtime.makeslice (3 samples, 0.03%) + + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +runtime.nextFreeFast (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.scanManifest (2 samples, 0.02%) + + + +runtime.(*mcache).refill (2 samples, 0.02%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +runtime/internal/syscall.Syscall6 (3 samples, 0.03%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +runtime.heapBitsSetType (3 samples, 0.03%) + + + +runtime.(*mheap).initSpan (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +reflect.flag.mustBeAssignable (2 samples, 0.02%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +cmpbody (2 samples, 0.02%) + + + +runtime/internal/atomic.(*UnsafePointer).StoreNoWB (1 samples, 0.01%) + + + +runtime.newobject (3 samples, 0.03%) + + + +runtime.scanframeworker (16 samples, 0.16%) + + + +time.Date (2 samples, 0.02%) + + + +os.basename (7 samples, 0.07%) + + + +encoding/json.(*decodeState).value (923 samples, 9.25%) +encoding/json.. + + +github.com/gorilla/mux.(*Router).ServeHTTP (4,932 samples, 49.42%) +github.com/gorilla/mux.(*Router).ServeHTTP + + +syscall.openat (4 samples, 0.04%) + + + +internal/poll.(*FD).Init (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/scanner/ospkg.(*scanner).Scan (2 samples, 0.02%) + + + +runtime.writeHeapBitsForAddr (1 samples, 0.01%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +os.direntReclen (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy-db/pkg/vulnsrc/ubuntu.VulnSrc.Get (1 samples, 0.01%) + + + +os.(*fileStat).IsDir (1 samples, 0.01%) + + + +runtime.save (1 samples, 0.01%) + + + +encoding/json.stateEndValue (3 samples, 0.03%) + + + +runtime.(*lfstack).push (1 samples, 0.01%) + + + +runtime.Stack.func1 (1 samples, 0.01%) + + + +runtime.newobject (5 samples, 0.05%) + + + +runtime.isEmpty (1 samples, 0.01%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +runtime.(*atomicMSpanPointer).StoreNoWB (1 samples, 0.01%) + + + +reflect.Value.CanAddr (1 samples, 0.01%) + + + +runtime.funcInfo.entry (1 samples, 0.01%) + + + +syscall.Open (4 samples, 0.04%) + + + +runtime.writeHeapBitsForAddr (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +sync.runtime_procPin (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (54 samples, 0.54%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +regexp.(*Regexp).doMatch (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy-db/pkg/db.Config.GetAdvisories (1 samples, 0.01%) + + + +sort.StringSlice.Swap (3 samples, 0.03%) + + + +reflect.(*uncommonType).exportedMethods (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.systemstack (3 samples, 0.03%) + + + +encoding/json.(*decodeState).scanNext (2 samples, 0.02%) + + + +runtime.convTstring (10 samples, 0.10%) + + + +os.readInt (3 samples, 0.03%) + + + +runtime.convT64 (2 samples, 0.02%) + + + +aeshashbody (3 samples, 0.03%) + + + +encoding/json.stateEndValue (2 samples, 0.02%) + + + +runtime.gentraceback (1 samples, 0.01%) + + + +fmt.(*pp).catchPanic (2 samples, 0.02%) + + + +runtime.gentraceback (1 samples, 0.01%) + + + +reflect.flag.mustBe (1 samples, 0.01%) + + + +runtime.entersyscall (4 samples, 0.04%) + + + +reflect.mapassign_faststr (23 samples, 0.23%) + + + +runtime.pcvalue (1 samples, 0.01%) + + + +reflect.name.name (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +reflect.Value.IsNil (3 samples, 0.03%) + + + +runtime.gcmarknewobject (1 samples, 0.01%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +runtime.makeslice (1 samples, 0.01%) + + + +reflect.Copy (4 samples, 0.04%) + + + +sort.symMerge (1 samples, 0.01%) + + + +encoding/json.indirect (2 samples, 0.02%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +reflect.(*rtype).Elem (1 samples, 0.01%) + + + +encoding/json.stateEndTop (1 samples, 0.01%) + + + +reflect.(*rtype).exportedMethods (6 samples, 0.06%) + + + +runtime.convTslice (4 samples, 0.04%) + + + +runtime.spanOf (1 samples, 0.01%) + + + +runtime.(*spanSet).pop (8 samples, 0.08%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.(*mSpanStateBox).set (1 samples, 0.01%) + + + +runtime.gentraceback (1 samples, 0.01%) + + + +encoding/json.stateEndValue (23 samples, 0.23%) + + + +runtime.(*mcache).nextFree (2 samples, 0.02%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +runtime.mPark (1 samples, 0.01%) + + + +github.com/opencontainers/go-digest.Digest.String (1 samples, 0.01%) + + + +runtime.pcvalue (3 samples, 0.03%) + + + +reflect.Value.Addr (3 samples, 0.03%) + + + +runtime.convT (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint32).CompareAndSwap (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (4 samples, 0.04%) + + + +runtime.nextFreeFast (3 samples, 0.03%) + + + +runtime.newobject (42 samples, 0.42%) + + + +github.com/opencontainers/go-digest.Algorithm.Available (12 samples, 0.12%) + + + +runtime.entersyscall (1 samples, 0.01%) + + + +runtime.futexwakeup (1 samples, 0.01%) + + + +sort.StringSlice.Less (23 samples, 0.23%) + + + +reflect.Value.Elem (3 samples, 0.03%) + + + +syscall.BytePtrFromString (1 samples, 0.01%) + + + +runtime.(*spanSet).pop (1 samples, 0.01%) + + + +reflect.cvtBytesString (1 samples, 0.01%) + + + +os.readIntLE (1 samples, 0.01%) + + + +encoding/json.(*scanner).pushParseState (7 samples, 0.07%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/common.CORSHeadersMiddleware.func1.1 (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.scan (2 samples, 0.02%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +runtime.gcResetMarkState.func1 (1 samples, 0.01%) + + + +sort.symMerge (40 samples, 0.40%) + + + +path.Clean (345 samples, 3.46%) +pat.. + + +sync.(*Pool).Put (1 samples, 0.01%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +fmt.(*pp).fmtString (6 samples, 0.06%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +reflect.(*rtype).Name (18 samples, 0.18%) + + + +runtime.execute (1 samples, 0.01%) + + + +fmt.(*pp).fmtString (1 samples, 0.01%) + + + +runtime.gcWriteBarrier (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +encoding/json.stateBeginStringOrEmpty (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (3 samples, 0.03%) + + + +runtime.mapaccess1_faststr (7 samples, 0.07%) + + + +reflect.(*rtype).NumMethod (2 samples, 0.02%) + + + +runtime.setprofilebucket (1 samples, 0.01%) + + + +reflect.add (2 samples, 0.02%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +runtime.mallocgc (19 samples, 0.19%) + + + +sort.StringSlice.Swap (1 samples, 0.01%) + + + +syscall.Syscall6 (3 samples, 0.03%) + + + +encoding/json.stateBeginValue (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/applier.(*applier).ApplyLayers (1 samples, 0.01%) + + + +runtime.arenaIdx.l1 (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query (3 samples, 0.03%) + + + +reflect.(*rtype).Name (9 samples, 0.09%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +runtime.futexwakeup (2 samples, 0.02%) + + + +sync.(*Pool).getSlow (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/imagestore.(*ImageStore).GetNextDigestWithBlobPaths.func1 (4 samples, 0.04%) + + + +runtime.(*lfstack).pop (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (6 samples, 0.06%) + + + +runtime.checkTimers (10 samples, 0.10%) + + + +time.parseRFC3339[...] (12 samples, 0.12%) + + + +go.etcd.io/bbolt.(*page).fastCheck (1 samples, 0.01%) + + + +runtime.memmove (1 samples, 0.01%) + + + +runtime.divRoundUp (2 samples, 0.02%) + + + +fmt.newPrinter (1 samples, 0.01%) + + + +strconv.ParseUint (1 samples, 0.01%) + + + +sync/atomic.(*Pointer[...]).Load (1 samples, 0.01%) + + + +runtime.growslice (3 samples, 0.03%) + + + +fmt.(*pp).printArg (5 samples, 0.05%) + + + +sort.StringSlice.Swap (5 samples, 0.05%) + + + +time.(*Location).lookup (1 samples, 0.01%) + + + +runtime.(*spanSet).push (1 samples, 0.01%) + + + +reflect.(*rtype).typeOff (2 samples, 0.02%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.lockWithRankMayAcquire (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +bytes.Compare (5 samples, 0.05%) + + + +os.(*File).Close (4 samples, 0.04%) + + + +encoding/json.unquoteBytes (2 samples, 0.02%) + + + +internal/poll.(*pollDesc).prepareRead (1 samples, 0.01%) + + + +runtime.newobject (3 samples, 0.03%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +runtime.funcspdelta (2 samples, 0.02%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +runtime.(*lfstack).pop (1 samples, 0.01%) + + + +runtime.gcAssistAlloc1 (1 samples, 0.01%) + + + +runtime.(*mheap).initSpan (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.GetBlob.func1 (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +reflect.Value.Kind (3 samples, 0.03%) + + + +runtime.pidlegetSpinning (1 samples, 0.01%) + + + +encoding/json.(*scanner).pushParseState (3 samples, 0.03%) + + + +runtime.(*scavengerState).sleep (1 samples, 0.01%) + + + +reflect.Value.Field (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint32).CompareAndSwap (5 samples, 0.05%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.makeSpanClass (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Stat (1 samples, 0.01%) + + + +runtime.deductAssistCredit (1 samples, 0.01%) + + + +runtime.memmove (1 samples, 0.01%) + + + +runtime.forEachP (1 samples, 0.01%) + + + +runtime.growslice (5 samples, 0.05%) + + + +runtime.callers.func1 (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +reflect.Value.Elem (1 samples, 0.01%) + + + +runtime.mallocgc (4 samples, 0.04%) + + + +runtime.traceback (1 samples, 0.01%) + + + +runtime.acquirem (1 samples, 0.01%) + + + +regexp/syntax.(*Inst).MatchRunePos (23 samples, 0.23%) + + + +runtime.mapiterinit (1 samples, 0.01%) + + + +runtime.convTstring (1 samples, 0.01%) + + + +runtime.systemstack (33 samples, 0.33%) + + + +runtime.procUnpin (1 samples, 0.01%) + + + +runtime.gcmarknewobject (1 samples, 0.01%) + + + +encoding/json.state0 (1 samples, 0.01%) + + + +fmt.(*fmt).truncateString (3 samples, 0.03%) + + + +runtime.newobject (16 samples, 0.16%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.updateRepoSummaryVulnerabilities (2 samples, 0.02%) + + + +encoding/json.stateBeginValueOrEmpty (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.PaginatedRepoMeta2RepoSummaries (3 samples, 0.03%) + + + +runtime.(*mcentral).grow (3 samples, 0.03%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +reflect.Value.Cap (1 samples, 0.01%) + + + +os.(*fileStat).Mode (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (3 samples, 0.03%) + + + +runtime.(*mspan).refillAllocCache (1 samples, 0.01%) + + + +runtime.newArenaMayUnlock (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +time.daysIn (4 samples, 0.04%) + + + +encoding/json.unquoteBytes (1 samples, 0.01%) + + + +runtime.(*sweepLocked).sweep (1 samples, 0.01%) + + + +encoding/json.(*scanner).pushParseState (3 samples, 0.03%) + + + +reflect.Value.Kind (9 samples, 0.09%) + + + +syscall.Getdents (98 samples, 0.98%) + + + +runtime.(*mspan).markBitsForIndex (1 samples, 0.01%) + + + +runtime.newobject (3 samples, 0.03%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (6 samples, 0.06%) + + + +github.com/aquasecurity/trivy/pkg/scanner/local.Scanner.scanVulnerabilities (1 samples, 0.01%) + + + +runtime.(*lfstack).push (1 samples, 0.01%) + + + +sort.swapRange (4 samples, 0.04%) + + + +strconv.ParseInt (3 samples, 0.03%) + + + +runtime.nextFreeFast (5 samples, 0.05%) + + + +runtime.divRoundUp (4 samples, 0.04%) + + + +runtime.forEachG (1 samples, 0.01%) + + + +os.statNolog.func1 (7 samples, 0.07%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +runtime.newobject (1 samples, 0.01%) + + + +os.openFileNolog (2 samples, 0.02%) + + + +encoding/json.cachedTypeFields (3 samples, 0.03%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +runtime.mallocgc (20 samples, 0.20%) + + + +runtime.stopm (4 samples, 0.04%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +runtime.netpollopen (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (4 samples, 0.04%) + + + +runtime.makemap_small (4 samples, 0.04%) + + + +reflect.typedmemclr (1 samples, 0.01%) + + + +runtime.reentersyscall (4 samples, 0.04%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +fmt.glob..func1 (1 samples, 0.01%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +runtime.(*lfstack).push (2 samples, 0.02%) + + + +reflect.(*rtype).Name (8 samples, 0.08%) + + + +github.com/aquasecurity/trivy/pkg/scanner/local.Scanner.scanVulnerabilities (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/handler.(*Server).ServeHTTP (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/api.SessionLogger.func1.1 (3 samples, 0.03%) + + + +sync.(*Pool).Get (7 samples, 0.07%) + + + +runtime.resolveTypeOff (2 samples, 0.02%) + + + +fmt.(*pp).handleMethods (3 samples, 0.03%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +reflect.(*rtype).Name (10 samples, 0.10%) + + + +sort.symMerge (3 samples, 0.03%) + + + +runtime.(*memRecordCycle).add (2 samples, 0.02%) + + + +memeqbody (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +io.(*LimitedReader).Read (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (868 samples, 8.70%) +encoding/jso.. + + +encoding/json.isSpace (1 samples, 0.01%) + + + +runtime.gentraceback (1 samples, 0.01%) + + + +runtime.(*itabTableType).find (1 samples, 0.01%) + + + +syscall.RawSyscall6 (3 samples, 0.03%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +github.com/99designs/gqlgen/graphql.(*FieldSet).Dispatch (1 samples, 0.01%) + + + +net.(*conn).Read (1 samples, 0.01%) + + + +runtime.(*mspan).divideByElemSize (1 samples, 0.01%) + + + +runtime.newobject (2 samples, 0.02%) + + + +os.(*fileStat).Mode (1 samples, 0.01%) + + + +runtime.readUintptr (1 samples, 0.01%) + + + +runtime.roundupsize (1 samples, 0.01%) + + + +reflect.Value.SetMapIndex (4 samples, 0.04%) + + + +runtime.mapaccess2 (1 samples, 0.01%) + + + +github.com/google/go-containerregistry/pkg/v1/layout.(*layoutIndex).IndexManifest (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (522 samples, 5.23%) +encodi.. + + +sync.(*Map).loadReadOnly (1 samples, 0.01%) + + + +runtime.(*hmap).newoverflow (2 samples, 0.02%) + + + +reflect.Value.Field (2 samples, 0.02%) + + + +internal/poll.ignoringEINTRIO (1 samples, 0.01%) + + + +runtime.(*mheap).allocSpan (6 samples, 0.06%) + + + +runtime.memclrNoHeapPointers (5 samples, 0.05%) + + + +runtime.gcWriteBarrierCX (1 samples, 0.01%) + + + +encoding/json.(*decodeState).literalStore (1 samples, 0.01%) + + + +runtime.putfull (2 samples, 0.02%) + + + +runtime.bool2int (1 samples, 0.01%) + + + +syscall.RawSyscall6 (5 samples, 0.05%) + + + +runtime.(*fixalloc).alloc (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.(*bmap).keys (1 samples, 0.01%) + + + +runtime.mallocgc (45 samples, 0.45%) + + + +runtime.morestack (6 samples, 0.06%) + + + +internal/poll.runtime_pollOpen (1 samples, 0.01%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +runtime.mallocgc (11 samples, 0.11%) + + + +runtime.futexsleep (1 samples, 0.01%) + + + +runtime.gcMarkTermination.func4 (1 samples, 0.01%) + + + +runtime.growslice (7 samples, 0.07%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +runtime.divRoundUp (5 samples, 0.05%) + + + +internal/testlog.Logger (2 samples, 0.02%) + + + +runtime.(*pageAlloc).allocToCache (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy-db/pkg/db.Config.GetAdvisories (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/imagestore.(*ImageStore).CheckBlob (1 samples, 0.01%) + + + +runtime.mallocgc (11 samples, 0.11%) + + + +runtime.(*mcache).nextFree (3 samples, 0.03%) + + + +runtime.freedefer (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*DB).View (1 samples, 0.01%) + + + +runtime.greyobject (2 samples, 0.02%) + + + +runtime.(*spanSet).pop (1 samples, 0.01%) + + + +runtime.mallocgc (4 samples, 0.04%) + + + +os.(*file).close (4 samples, 0.04%) + + + +reflect.Value.assignTo (4 samples, 0.04%) + + + +encoding/json.(*decodeState).literalStore (1 samples, 0.01%) + + + +runtime.procyield (1 samples, 0.01%) + + + +runtime.gcBgMarkWorker.func1 (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy-db/pkg/db.Config.GetAdvisories (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.GetBlob (1 samples, 0.01%) + + + +encoding/json.stateBeginValue (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query_GlobalSearch (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func23.1 (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Quer.. + + +sort.symMerge (53 samples, 0.53%) + + + +runtime.mProf_Malloc (1 samples, 0.01%) + + + +runtime.itabHashFunc (1 samples, 0.01%) + + + +encoding/json.cachedTypeFields (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.MissingBlobs (1 samples, 0.01%) + + + +runtime.(*gcControllerState).markWorkerStop (6 samples, 0.06%) + + + +runtime.duffzero (2 samples, 0.02%) + + + +runtime.(*mcache).refill (13 samples, 0.13%) + + + +reflect.Value.CanAddr (2 samples, 0.02%) + + + +reflect.(*rtype).Kind (2 samples, 0.02%) + + + +reflect.(*rtype).Key (2 samples, 0.02%) + + + +os.OpenFile (7 samples, 0.07%) + + + +sync/atomic.(*Value).Load (2 samples, 0.02%) + + + +sync/atomic.(*Pointer[...]).Load (3 samples, 0.03%) + + + +syscall.Syscall6 (3 samples, 0.03%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +runtime.slicebytetostring (14 samples, 0.14%) + + + +fmt.(*pp).printValue (1 samples, 0.01%) + + + +fmt.(*fmt).fmtS (1 samples, 0.01%) + + + +runtime.memmove (1 samples, 0.01%) + + + +runtime.putfull (1 samples, 0.01%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +runtime.sweepone (104 samples, 1.04%) + + + +runtime.(*mheap).allocMSpanLocked (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func23 (3 samples, 0.03%) + + + +runtime.(*lfstack).pop (3 samples, 0.03%) + + + +runtime.(*pallocBits).summarize (9 samples, 0.09%) + + + +runtime.divRoundUp (3 samples, 0.03%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +reflect.makemap (6 samples, 0.06%) + + + +reflect.resolveTypeOff (1 samples, 0.01%) + + + +runtime.lock2 (8 samples, 0.08%) + + + +sync.runtime_procPin (2 samples, 0.02%) + + + +runtime.mProf_Malloc (1 samples, 0.01%) + + + +sync.(*Map).Load (4 samples, 0.04%) + + + +reflect.directlyAssignable (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.SessionAuditLogger.func1.1 (4,931 samples, 49.41%) +zotregistry.io/zot/pkg/api.SessionAuditLogger.func1.1 + + +runtime.pcvalue (2 samples, 0.02%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +runtime.(*spanSet).push (1 samples, 0.01%) + + + +encoding/json.stateBeginString (1 samples, 0.01%) + + + +github.com/knqyf263/go-deb-version.(*Version).LessThan (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.getBlob (1 samples, 0.01%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +runtime.(*mcentral).uncacheSpan (1 samples, 0.01%) + + + +runtime.(*gcBits).bitp (73 samples, 0.73%) + + + +encoding/json.indirect (5 samples, 0.05%) + + + +net/http.HandlerFunc.ServeHTTP (1 samples, 0.01%) + + + +reflect.Value.Addr (4 samples, 0.04%) + + + +reflect.name.readVarint (1 samples, 0.01%) + + + +bytes.(*Buffer).ReadFrom (54 samples, 0.54%) + + + +reflect.flag.mustBeAssignable (2 samples, 0.02%) + + + +runtime.fastlog2 (1 samples, 0.01%) + + + +regexp.lazyFlag.match (1 samples, 0.01%) + + + +memeqbody (4 samples, 0.04%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.scan (7 samples, 0.07%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +runtime.(*gcBits).bytep (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (7 samples, 0.07%) + + + +runtime.mergeSummaries (2 samples, 0.02%) + + + +runtime/internal/syscall.Syscall6 (422 samples, 4.23%) +runti.. + + +syscall.RawSyscall6 (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.(*spanSet).push (1 samples, 0.01%) + + + +reflect.(*rtype).Name (2 samples, 0.02%) + + + +runtime.makeslice (5 samples, 0.05%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).List (646 samples, 6.47%) +zotregis.. + + +runtime.(*mheap).nextSpanForSweep (9 samples, 0.09%) + + + +net/http.http2readFrameHeader (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +internal/poll.(*FD).destroy (2 samples, 0.02%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (1 samples, 0.01%) + + + +reflect.ValueOf (1 samples, 0.01%) + + + +runtime.(*mheap).allocMSpanLocked (1 samples, 0.01%) + + + +runtime.mapaccess2_faststr (5 samples, 0.05%) + + + +encoding/json.(*decodeState).rescanLiteral (417 samples, 4.18%) +enco.. + + +reflect.name.readVarint (1 samples, 0.01%) + + + +encoding/json.stateEndValue (22 samples, 0.22%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +encoding/json.Unmarshal (1,251 samples, 12.54%) +encoding/json.Unma.. + + +runtime.(*pageAlloc).update (2 samples, 0.02%) + + + +runtime.addfinalizer (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/imagestore.(*ImageStore).RunDedupeForDigest (2 samples, 0.02%) + + + +reflect.Value.Addr (1 samples, 0.01%) + + + +runtime.(*scavengeIndex).mark (3 samples, 0.03%) + + + +encoding/json.stateBeginValue (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (5 samples, 0.05%) + + + +runtime.(*mheap).alloc.func1 (1 samples, 0.01%) + + + +memeqbody (1 samples, 0.01%) + + + +reflect.Value.IsValid (2 samples, 0.02%) + + + +reflect.flag.mustBeExported (1 samples, 0.01%) + + + +sort.symMerge (10 samples, 0.10%) + + + +runtime.roundupsize (1 samples, 0.01%) + + + +runtime.addspecial (1 samples, 0.01%) + + + +encoding/json.stateBeginStringOrEmpty (2 samples, 0.02%) + + + +runtime.slicebytetostring (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (3 samples, 0.03%) + + + +runtime.(*mheap).alloc.func1 (4 samples, 0.04%) + + + +runtime.(*mheap).alloc (3 samples, 0.03%) + + + +runtime.(*mspan).refillAllocCache (1 samples, 0.01%) + + + +runtime.casgstatus (1 samples, 0.01%) + + + +fmt.(*fmt).init (1 samples, 0.01%) + + + +runtime.newobject (7 samples, 0.07%) + + + +runtime.memmove (1 samples, 0.01%) + + + +runtime.(*spanSet).push (2 samples, 0.02%) + + + +runtime.nextFreeFast (1 samples, 0.01%) + + + +path.Join (80 samples, 0.80%) + + + +runtime.(*mspan).objIndex (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1.1 (3 samples, 0.03%) + + + +reflect.unsafe_New (5 samples, 0.05%) + + + +internal/poll.(*FD).ReadDirent (7 samples, 0.07%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +time.(*Time).stripMono (1 samples, 0.01%) + + + +runtime.(*mheap).allocMSpanLocked (2 samples, 0.02%) + + + +io/fs.FileMode.IsDir (1 samples, 0.01%) + + + +runtime.(*gcBitsArena).tryAlloc (1 samples, 0.01%) + + + +fmt.(*fmt).fmtS (1 samples, 0.01%) + + + +reflect.Value.SetBool (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search.(*queryResolver).GlobalSearch (3 samples, 0.03%) + + + +runtime.(*mcentral).uncacheSpan (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint32).Add (4 samples, 0.04%) + + + +reflect.Value.Elem (2 samples, 0.02%) + + + +runtime.duffzero (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.(*mspan).countAlloc (2 samples, 0.02%) + + + +sort.rotate (1 samples, 0.01%) + + + +encoding/json.(*decodeState).array (164 samples, 1.64%) + + + +os.readInt (1 samples, 0.01%) + + + +runtime.procyield (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Bucket).Get (57 samples, 0.57%) + + + +runtime.exitsyscall (14 samples, 0.14%) + + + +runtime.heapBitsSetType (4 samples, 0.04%) + + + +syscall.Syscall (2 samples, 0.02%) + + + +runtime.newMarkBits (1 samples, 0.01%) + + + +reflect.(*rtype).typeOff (2 samples, 0.02%) + + + +encoding/json.unquoteBytes (61 samples, 0.61%) + + + +fmt.(*fmt).padString (1 samples, 0.01%) + + + +runtime.isEmpty (1 samples, 0.01%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +runtime.(*mcache).refill (3 samples, 0.03%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +syscall.RawSyscall6 (2 samples, 0.02%) + + + +runtime.(*mcache).refill (4 samples, 0.04%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query_GlobalSearch.func2 (3 samples, 0.03%) + + + +reflect.Value.Elem (1 samples, 0.01%) + + + +runtime.pcvalue (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +reflect.unsafe_NewArray (9 samples, 0.09%) + + + +runtime.resolveTypeOff (2 samples, 0.02%) + + + +sort.StringSlice.Less (6 samples, 0.06%) + + + +runtime.resolveTypeOff (6 samples, 0.06%) + + + +encoding/json.stateEndValue (9 samples, 0.09%) + + + +reflect.valueInterface (5 samples, 0.05%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.futexsleep (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Cursor).searchPage (39 samples, 0.39%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointersChunked (17 samples, 0.17%) + + + +reflect.Value.Kind (1 samples, 0.01%) + + + +encoding/json.(*scanner).popParseState (1 samples, 0.01%) + + + +reflect.resolveTypeOff (8 samples, 0.08%) + + + +runtime.(*mspan).init (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +sync.runtime_procUnpin (1 samples, 0.01%) + + + +reflect.(*rtype).Name (5 samples, 0.05%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1 (3 samples, 0.03%) + + + +runtime.duffcopy (2 samples, 0.02%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.schedule (4 samples, 0.04%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.acquirem (3 samples, 0.03%) + + + +runtime.slicebytetostring (9 samples, 0.09%) + + + +reflect.name.name (3 samples, 0.03%) + + + +runtime.(*pallocBits).summarize (2 samples, 0.02%) + + + +os.(*File).Readdirnames (12 samples, 0.12%) + + + +runtime.writeHeapBits.flush (3 samples, 0.03%) + + + +runtime.convT64 (1 samples, 0.01%) + + + +runtime.(*mSpanStateBox).set (1 samples, 0.01%) + + + +reflect.New (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (3 samples, 0.03%) + + + +runtime.gentraceback (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Walk (2,958 samples, 29.64%) +zotregistry.io/zot/pkg/storage/local.(*Driver)... + + +reflect.(*rtype).String (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy/pkg/detector/library.detect (1 samples, 0.01%) + + + +reflect.Value.IsValid (1 samples, 0.01%) + + + +runtime.(*mspan).nextFreeIndex (2 samples, 0.02%) + + + +runtime.makeslice (1 samples, 0.01%) + + + +runtime.scanobject (703 samples, 7.04%) +runtime.s.. + + +syscall.RawSyscall6 (3 samples, 0.03%) + + + +runtime.putfull (96 samples, 0.96%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (25 samples, 0.25%) + + + +runtime.exitsyscallfast (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/common.ACHeadersMiddleware.func1.1 (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).ScanImage (2 samples, 0.02%) + + + +runtime.(*hmap).newoverflow (1 samples, 0.01%) + + + +runtime.notesleep (1 samples, 0.01%) + + + +reflect.(*rtype).Name (4 samples, 0.04%) + + + +runtime.profilealloc (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Walk (2 samples, 0.02%) + + + +reflect.(*rtype).Kind (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Cursor).goToFirstElementOnTheStack (1 samples, 0.01%) + + + +strings.HasSuffix (5 samples, 0.05%) + + + +runtime.makeBucketArray (1 samples, 0.01%) + + + +reflect.resolveTypeOff (2 samples, 0.02%) + + + +sort.rotate (2 samples, 0.02%) + + + +runtime.(*spanSet).push (1 samples, 0.01%) + + + +reflect.Value.Addr (6 samples, 0.06%) + + + +bytes.(*Buffer).grow (51 samples, 0.51%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.(*mSpanStateBox).get (1 samples, 0.01%) + + + +encoding/base64.assemble64 (63 samples, 0.63%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.funcspdelta (1 samples, 0.01%) + + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +aeshashbody (5 samples, 0.05%) + + + +encoding/json.(*scanner).pushParseState (2 samples, 0.02%) + + + +syscall.Open (4 samples, 0.04%) + + + +bytes.(*Reader).WriteTo (1 samples, 0.01%) + + + +os.statNolog (8 samples, 0.08%) + + + +internal/poll.ignoringEINTRIO (98 samples, 0.98%) + + + +regexp.(*inputs).init (1 samples, 0.01%) + + + +net/http.serveFile (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Tx).Commit (1 samples, 0.01%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +runtime.systemstack (27 samples, 0.27%) + + + +runtime.assertE2I2 (18 samples, 0.18%) + + + +reflect.add (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy/pkg/scanner/ospkg.(*scanner).Scan (1 samples, 0.01%) + + + +runtime.(*spanSet).push (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy-db/pkg/db.Config.GetAdvisories (1 samples, 0.01%) + + + +encoding/json.stateBeginString (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*page).fastCheck (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/cve.BaseCveInfo.GetCVESummaryForImageMedia (8 samples, 0.08%) + + + +github.com/aquasecurity/trivy/pkg/scanner/langpkg.(*scanner).Scan (1 samples, 0.01%) + + + +encoding/json.stateInString (58 samples, 0.58%) + + + +runtime.mallocgc (4 samples, 0.04%) + + + +runtime.newarray (17 samples, 0.17%) + + + +fmt.newPrinter (3 samples, 0.03%) + + + +aeshashbody (3 samples, 0.03%) + + + +runtime.(*mheap).alloc (1 samples, 0.01%) + + + +runtime.printArgs (1 samples, 0.01%) + + + +reflect.cvtBytesString (24 samples, 0.24%) + + + +runtime.newobject (19 samples, 0.19%) + + + +zotregistry.io/zot/pkg/extensions/search/cve/trivy.Scanner.ScanImage (2 samples, 0.02%) + + + +path.Base (17 samples, 0.17%) + + + +reflect.Value.SetString (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (4,931 samples, 49.41%) +net/http.HandlerFunc.ServeHTTP + + +runtime.step (2 samples, 0.02%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +runtime.convT (6 samples, 0.06%) + + + +runtime.roundupsize (1 samples, 0.01%) + + + +runtime.hashGrow (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*page).fastCheck (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Stat (91 samples, 0.91%) + + + +encoding/json.(*decodeState).unmarshal (927 samples, 9.29%) +encoding/json.. + + +runtime.funcspdelta (1 samples, 0.01%) + + + +reflect.(*rtype).Name (6 samples, 0.06%) + + + +net/http.HandlerFunc.ServeHTTP (3 samples, 0.03%) + + + +runtime.gcAssistAlloc.func1 (3 samples, 0.03%) + + + +net/http.HandlerFunc.ServeHTTP (4,930 samples, 49.40%) +net/http.HandlerFunc.ServeHTTP + + +runtime.makeSpanClass (1 samples, 0.01%) + + + +runtime.mallocgc (6 samples, 0.06%) + + + +zotregistry.io/zot/pkg/log.goroutineHook.Run (1 samples, 0.01%) + + + +runtime.wbBufFlush1 (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/handler/transport.GET.Do (3 samples, 0.03%) + + + +memeqbody (1 samples, 0.01%) + + + +runtime.findObject (1 samples, 0.01%) + + + +runtime.(*mcache).refill (5 samples, 0.05%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +reflect.mapassign_faststr (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/scanner/local.Scanner.Scan (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (1 samples, 0.01%) + + + +runtime.casgstatus (3 samples, 0.03%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +encoding/json.(*decodeState).unmarshal (1,293 samples, 12.96%) +encoding/json.(*dec.. + + +encoding/json.stateBeginValue (1 samples, 0.01%) + + + +runtime.releasem (1 samples, 0.01%) + + + +reflect.(*rtype).Name (26 samples, 0.26%) + + + +encoding/json.stateInStringEscU1 (1 samples, 0.01%) + + + +reflect.ifaceIndir (1 samples, 0.01%) + + + +encoding/json.stateEndValue (1 samples, 0.01%) + + + +reflect.name.readVarint (5 samples, 0.05%) + + + +runtime.divRoundUp (4 samples, 0.04%) + + + +runtime.newobject (3 samples, 0.03%) + + + +github.com/opencontainers/go-digest.NewDigestFromEncoded (25 samples, 0.25%) + + + +runtime.(*mcentral).grow (4 samples, 0.04%) + + + +runtime.(*_type).typeOff (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func23 (3 samples, 0.03%) + + + +github.com/99designs/gqlgen/graphql/executor.(*Executor).DispatchOperation.func1.1.1 (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy-db/pkg/db.Config.GetVulnerability.func1 (2 samples, 0.02%) + + + +strings.IndexByte (2 samples, 0.02%) + + + +crypto.Hash.Size (3 samples, 0.03%) + + + +encoding/json.(*decodeState).rescanLiteral (58 samples, 0.58%) + + + +runtime.memclrNoHeapPointers (1 samples, 0.01%) + + + +runtime.acquirem (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +runtime.findObject (1 samples, 0.01%) + + + +internal/poll.(*FD).Write (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +fmt.(*fmt).truncateString (1 samples, 0.01%) + + + +runtime.(*mcache).nextFree (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/scanner/langpkg.(*scanner).Scan (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*TxStats).IncCursorCount (1 samples, 0.01%) + + + +runtime.slicebytetostring (2 samples, 0.02%) + + + +os.(*File).Readdirnames (31 samples, 0.31%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).List (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.initializeArchiveScanner (1 samples, 0.01%) + + + +runtime.heapBitsSetType (1 samples, 0.01%) + + + +encoding/json.indirect (127 samples, 1.27%) + + + +reflect.MakeMap (1 samples, 0.01%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +encoding/json.(*scanner).pushParseState (1 samples, 0.01%) + + + +reflect.(*rtype).PkgPath (2 samples, 0.02%) + + + +os.(*file).close (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint32).CompareAndSwap (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (21 samples, 0.21%) + + + +runtime.heapBitsSetType (2 samples, 0.02%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/scheduler.(*generator).generate (2,972 samples, 29.78%) +zotregistry.io/zot/pkg/scheduler.(*generator).g.. + + +time.tzsetName (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/convert.updateImageSummaryVulnerabilities (3 samples, 0.03%) + + + +runtime.makeslice (2 samples, 0.02%) + + + +runtime.(*mcentral).cacheSpan (3 samples, 0.03%) + + + +github.com/containers/common/pkg/retry.RetryIfNecessary (119 samples, 1.19%) + + + +runtime.makeslice (19 samples, 0.19%) + + + +runtime.(*mcache).nextFree (4 samples, 0.04%) + + + +runtime.markBits.isMarked (1 samples, 0.01%) + + + +runtime.findObject (1 samples, 0.01%) + + + +syscall.Syscall6 (52 samples, 0.52%) + + + +runtime.assertE2I2 (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/imagestore.(*ImageStore).GetNextDigestWithBlobPaths.func1 (4 samples, 0.04%) + + + +runtime.mapiternext (2 samples, 0.02%) + + + +reflect.convertOp (2 samples, 0.02%) + + + +runtime.mallocgc (5 samples, 0.05%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +time.tzset (2 samples, 0.02%) + + + +runtime.(*lfstack).pop (137 samples, 1.37%) + + + +runtime.gcmarknewobject (1 samples, 0.01%) + + + +sort.StringSlice.Less (2 samples, 0.02%) + + + +syscall.Syscall (1 samples, 0.01%) + + + +github.com/opencontainers/go-digest.Algorithm.Size (9 samples, 0.09%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +sync.(*Map).Load (24 samples, 0.24%) + + + +runtime.mapaccess2_faststr (5 samples, 0.05%) + + + +crypto/sha256.(*digest).Write (62 samples, 0.62%) + + + +runtime.mallocgc (6 samples, 0.06%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +internal/poll.ignoringEINTRIO (3 samples, 0.03%) + + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.SessionLogger.func1.1 (1 samples, 0.01%) + + + +runtime.roundupsize (4 samples, 0.04%) + + + +path.Clean (72 samples, 0.72%) + + + +encoding/json.(*decodeState).scanWhile (4 samples, 0.04%) + + + +syscall.Syscall (98 samples, 0.98%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +runtime.(*activeSweep).begin (4 samples, 0.04%) + + + +reflect.packEface (2 samples, 0.02%) + + + +encoding/json.(*decodeState).literalStore (9 samples, 0.09%) + + + +runtime.gcmarknewobject (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func2 (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (4 samples, 0.04%) + + + +zotregistry.io/zot/pkg/storage/local.fileInfo.IsDir (4 samples, 0.04%) + + + +go.etcd.io/bbolt.(*Tx).page (2 samples, 0.02%) + + + +os.fillFileStatFromSys (1 samples, 0.01%) + + + +reflect.name.data (1 samples, 0.01%) + + + +runtime.arenaIndex (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/detector/library.Detect (1 samples, 0.01%) + + + +sync.(*Pool).pin (2 samples, 0.02%) + + + +runtime.duffcopy (4 samples, 0.04%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +runtime.gcTrigger.test (2 samples, 0.02%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +runtime.newMarkBits (9 samples, 0.09%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*Driver).Stat (13 samples, 0.13%) + + + +runtime.nextFreeFast (3 samples, 0.03%) + + + +runtime.lockWithRank (8 samples, 0.08%) + + + +runtime.(*consistentHeapStats).acquire (1 samples, 0.01%) + + + +reflect.(*rtype).ptrTo (3 samples, 0.03%) + + + +go.etcd.io/bbolt.(*page).fastCheck (1 samples, 0.01%) + + + +runtime.lockWithRankMayAcquire (1 samples, 0.01%) + + + +sort.Stable (182 samples, 1.82%) +s.. + + +github.com/aquasecurity/trivy/pkg/scanner/local.Scanner.Scan (2 samples, 0.02%) + + + +io.copyBuffer (1 samples, 0.01%) + + + +runtime.deductAssistCredit (3 samples, 0.03%) + + + +runtime/internal/atomic.(*Int64).Load (1 samples, 0.01%) + + + +runtime.removespecial (1 samples, 0.01%) + + + +runtime.gcResetMarkState (1 samples, 0.01%) + + + +runtime.(*mheap).allocMSpanLocked (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +time.(*Time).setLoc (1 samples, 0.01%) + + + +runtime.(*pageAlloc).scavenge.func1 (33 samples, 0.33%) + + + +runtime.mapaccess2_faststr (1 samples, 0.01%) + + + +runtime.(*mcache).refill (1 samples, 0.01%) + + + +runtime.memmove (1 samples, 0.01%) + + + +github.com/gorilla/handlers.recoveryHandler.ServeHTTP (3 samples, 0.03%) + + + +runtime.findObject (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy/pkg/detector/ospkg.Detect (1 samples, 0.01%) + + + +runtime.growslice (1 samples, 0.01%) + + + +encoding/json.(*decodeState).unmarshal (254 samples, 2.55%) +en.. + + +encoding/json.(*decodeState).rescanLiteral (51 samples, 0.51%) + + + +syscall.Stat (10 samples, 0.10%) + + + +encoding/json.stateBeginValue (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/commands/artifact.NewRunner (1 samples, 0.01%) + + + +runtime.slicebytetostring (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/meta/boltdb.(*BoltDB).SearchRepos.func1 (2,225 samples, 22.29%) +zotregistry.io/zot/pkg/meta/boltdb... + + +runtime.resettimer (1 samples, 0.01%) + + + +reflect.Value.Type (6 samples, 0.06%) + + + +time.isDigit[...] (9 samples, 0.09%) + + + +zotregistry.io/zot/pkg/storage/local.fileInfo.Path (1 samples, 0.01%) + + + +runtime.mallocgc (7 samples, 0.07%) + + + +os.(*File).Write (1 samples, 0.01%) + + + +encoding/json.(*scanner).pushParseState (1 samples, 0.01%) + + + +runtime.checkRunqsNoP (1 samples, 0.01%) + + + +encoding/json.(*scanner).popParseState (1 samples, 0.01%) + + + +runtime.(*mheap).initSpan (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func24 (3 samples, 0.03%) + + + +encoding/json.indirect (25 samples, 0.25%) + + + +os.newFile (4 samples, 0.04%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +runtime.getMCache (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime/internal/atomic.(*Uint32).Add (1 samples, 0.01%) + + + +runtime.mProf_Malloc (2 samples, 0.02%) + + + +encoding/json.stateInString (11 samples, 0.11%) + + + +runtime.unlock (2 samples, 0.02%) + + + +encoding/json.isSpace (1 samples, 0.01%) + + + +runtime.memmove (3 samples, 0.03%) + + + +runtime.makemap (1 samples, 0.01%) + + + +runtime.(*gcBits).bytep (61 samples, 0.61%) + + + +sort.symMerge (9 samples, 0.09%) + + + +encoding/json.indirect (69 samples, 0.69%) + + + +sort.rotate (3 samples, 0.03%) + + + +reflect.valueInterface (7 samples, 0.07%) + + + +github.com/aquasecurity/trivy/pkg/fanal/cache.FSCache.getBlob (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (12 samples, 0.12%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +os.direntReclen (1 samples, 0.01%) + + + +runtime.add (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (2 samples, 0.02%) + + + +github.com/aquasecurity/trivy/pkg/detector/library.(*Driver).DetectVulnerabilities (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Bucket).pageNode (1 samples, 0.01%) + + + +runtime.divRoundUp (1 samples, 0.01%) + + + +runtime.mallocgc (1 samples, 0.01%) + + + +reflect.MakeSlice (15 samples, 0.15%) + + + +reflect.resolveTypeOff (1 samples, 0.01%) + + + +reflect.Value.OverflowInt (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/api.(*AuthnMiddleware).TryAuthnHandlers.func1.1 (4,930 samples, 49.40%) +zotregistry.io/zot/pkg/api.(*AuthnMiddleware).TryAuthnHandlers.func1.1 + + +reflect.Value.Set (12 samples, 0.12%) + + + +runtime.wbBufFlush.func1 (1 samples, 0.01%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +internal/poll.(*FD).destroy (3 samples, 0.03%) + + + +strconv.FormatInt (7 samples, 0.07%) + + + +encoding/json.unquoteBytes (5 samples, 0.05%) + + + +runtime.mapaccess1_fast32 (1 samples, 0.01%) + + + +encoding/json.stateBeginValue (1 samples, 0.01%) + + + +runtime.(*atomicMSpanPointer).Load (1 samples, 0.01%) + + + +runtime.(*pageAlloc).free (14 samples, 0.14%) + + + +runtime.(*mcache).nextFree (4 samples, 0.04%) + + + +runtime.strhash (1 samples, 0.01%) + + + +encoding/json.indirect (5 samples, 0.05%) + + + +os.readIntLE (2 samples, 0.02%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query.func24 (3 samples, 0.03%) + + + +runtime.arenaIdx.l1 (2 samples, 0.02%) + + + +reflect.Value.Set (2 samples, 0.02%) + + + +encoding/json.Unmarshal (1 samples, 0.01%) + + + +runtime.(*gcBitsArena).tryAlloc (1 samples, 0.01%) + + + +runtime.wbBufFlush.func1 (2 samples, 0.02%) + + + +runtime.funcspdelta (1 samples, 0.01%) + + + +runtime.evacuate_faststr (8 samples, 0.08%) + + + +reflect.Value.Set (4 samples, 0.04%) + + + +runtime.(*atomicMSpanPointer).StoreNoWB (1 samples, 0.01%) + + + +runtime.systemstack (2 samples, 0.02%) + + + +runtime.divRoundUp (3 samples, 0.03%) + + + +runtime.spanSetSpinePointer.lookup (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (1 samples, 0.01%) + + + +runtime/internal/syscall.Syscall6 (5 samples, 0.05%) + + + +encoding/json.(*decodeState).value (1 samples, 0.01%) + + + +runtime.mallocgc (4 samples, 0.04%) + + + +zotregistry.io/zot/pkg/extensions/search/gql_generated.(*executionContext)._Query_GlobalSearch (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/executor.processExtensions.func4 (3 samples, 0.03%) + + + +runtime.(*lfstack).pop (176 samples, 1.76%) + + + +sync.(*Map).Load (1 samples, 0.01%) + + + +runtime.lock (1 samples, 0.01%) + + + +runtime.mallocgc (2 samples, 0.02%) + + + +path.(*lazybuf).append (4 samples, 0.04%) + + + +os.(*File).readdir (13 samples, 0.13%) + + + +runtime.mallocgc (3 samples, 0.03%) + + + +runtime.(*consistentHeapStats).acquire (1 samples, 0.01%) + + + +reflect.(*rtype).String (3 samples, 0.03%) + + + +runtime.lockWithRank (1 samples, 0.01%) + + + +github.com/aquasecurity/trivy/pkg/fanal/image.newImage (1 samples, 0.01%) + + + +memeqbody (4 samples, 0.04%) + + + +github.com/aquasecurity/trivy/pkg/vulnerability.Client.FillInfo (2 samples, 0.02%) + + + +reflect.(*rtype).ptrTo (2 samples, 0.02%) + + + +runtime.(*atomicSpanSetSpinePointer).Load (1 samples, 0.01%) + + + +reflect.name.data (1 samples, 0.01%) + + + +fmt.(*buffer).writeString (6 samples, 0.06%) + + + +runtime.callers (1 samples, 0.01%) + + + +internal/poll.(*FD).decref (3 samples, 0.03%) + + + +zotregistry.io/zot/pkg/storage/imagestore.(*ImageStore).GetNextDigestWithBlobPaths.func1 (116 samples, 1.16%) + + + +syscall.BytePtrFromString (1 samples, 0.01%) + + + +encoding/json.unquoteBytes (8 samples, 0.08%) + + + +encoding/json.(*decodeState).scanWhile (2 samples, 0.02%) + + + +runtime.gcWriteBarrierDX (1 samples, 0.01%) + + + +runtime.wbBufFlush (1 samples, 0.01%) + + + +runtime.markBits.setMarked (100 samples, 1.00%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (33 samples, 0.33%) + + + +reflect.Value.Field (1 samples, 0.01%) + + + +sync.(*Pool).pin (4 samples, 0.04%) + + + +reflect.makeString (1 samples, 0.01%) + + + +runtime.mapaccess2_faststr (6 samples, 0.06%) + + + +runtime.acquirem (1 samples, 0.01%) + + + +sort.swapRange (6 samples, 0.06%) + + + +github.com/aquasecurity/trivy/pkg/commands/operation.NewCache (1 samples, 0.01%) + + + +runtime.lockRankMayQueueFinalizer (1 samples, 0.01%) + + + +runtime.(*mcentral).grow (2 samples, 0.02%) + + + +encoding/json.(*scanner).popParseState (1 samples, 0.01%) + + + +fmt.(*buffer).writeString (1 samples, 0.01%) + + + +sort.StringSlice.Less (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1,292 samples, 12.95%) +encoding/json.(*dec.. + + +github.com/google/go-containerregistry/pkg/v1/layout.(*layoutIndex).Image (1 samples, 0.01%) + + + +runtime.systemstack (1 samples, 0.01%) + + + +sort.rotate (7 samples, 0.07%) + + + +runtime.(*mspan).init (1 samples, 0.01%) + + + +encoding/json.(*decodeState).rescanLiteral (5 samples, 0.05%) + + + +syscall.Stat (519 samples, 5.20%) +syscal.. + + +runtime/internal/atomic.(*Int64).Add (2 samples, 0.02%) + + + +fmt.(*pp).doPrintf (5 samples, 0.05%) + + + +go.etcd.io/bbolt.(*DB).View (2 samples, 0.02%) + + + +reflect.name.name (4 samples, 0.04%) + + + +runtime.gcMarkDone.func1.1 (1 samples, 0.01%) + + + +runtime.writeHeapBits.flush (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/handler.(*Server).ServeHTTP (3 samples, 0.03%) + + + +runtime.(*mcentral).cacheSpan (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/handler.(*Server).ServeHTTP (1 samples, 0.01%) + + + +net/http.HandlerFunc.ServeHTTP (4,931 samples, 49.41%) +net/http.HandlerFunc.ServeHTTP + + +runtime.slicebytetostring (1 samples, 0.01%) + + + +encoding/json.(*decodeState).scanWhile (4 samples, 0.04%) + + + +reflect.(*rtype).uncommon (1 samples, 0.01%) + + + +reflect.Value.Elem (3 samples, 0.03%) + + + +runtime.(*atomicMSpanPointer).StoreNoWB (1 samples, 0.01%) + + + +reflect.flag.kind (1 samples, 0.01%) + + + +runtime.resolveTypeOff (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/log.GoroutineID (1 samples, 0.01%) + + + +runtime.memclrNoHeapPointers (3 samples, 0.03%) + + + +encoding/json.stateEndValue (2 samples, 0.02%) + + + +regexp.(*Regexp).doOnePass (66 samples, 0.66%) + + + +os.Stat (639 samples, 6.40%) +os.Stat + + +runtime.profilealloc (1 samples, 0.01%) + + + +runtime.(*mcache).allocLarge (2 samples, 0.02%) + + + +encoding/json.(*decodeState).literalStore (5 samples, 0.05%) + + + +sync.(*Map).Load (3 samples, 0.03%) + + + +go.etcd.io/bbolt.(*Tx).page (2 samples, 0.02%) + + + +runtime.(*randomEnum).done (1 samples, 0.01%) + + + +runtime.mapaccess2 (8 samples, 0.08%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.gcWriteBarrierDX (1 samples, 0.01%) + + + +runtime.typedmemmove (1 samples, 0.01%) + + + +runtime.gcmarknewobject (1 samples, 0.01%) + + + +encoding/json.(*decodeState).scanNext (2 samples, 0.02%) + + + +runtime.profilealloc (1 samples, 0.01%) + + + +runtime.casgstatus (6 samples, 0.06%) + + + +runtime.(*mheap).allocSpan (1 samples, 0.01%) + + + +runtime.isSweepDone (1 samples, 0.01%) + + + +runtime.convT (1 samples, 0.01%) + + + +runtime.cmpstring (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +github.com/99designs/gqlgen/graphql/handler/transport.GET.Do (3 samples, 0.03%) + + + +runtime.arenaIdx.l2 (1 samples, 0.01%) + + + +reflect.name.name (9 samples, 0.09%) + + + +runtime.gcWriteBarrierCX (1 samples, 0.01%) + + + +zotregistry.io/zot/pkg/storage/local.(*fileWriter).Write (1 samples, 0.01%) + + + +go.etcd.io/bbolt.(*Bucket).CreateBucketIfNotExists (1 samples, 0.01%) + + + +runtime.lockWithRank (1 samples, 0.01%) + + + +reflect.(*rtype).exportedMethods (1 samples, 0.01%) + + + +encoding/json.(*decodeState).unmarshal (1 samples, 0.01%) + + + +encoding/json.(*decodeState).object (1 samples, 0.01%) + + + +runtime.unlock (3 samples, 0.03%) + + + +github.com/aquasecurity/trivy/pkg/detector/library.Detect (1 samples, 0.01%) + + + +github.com/knqyf263/go-deb-version.compare (2 samples, 0.02%) + + + + diff --git a/docs/developer-guide/onboarding.md b/docs/developer-guide/onboarding.md index cee4908..ea7fe58 100644 --- a/docs/developer-guide/onboarding.md +++ b/docs/developer-guide/onboarding.md @@ -102,6 +102,12 @@ Delve is a powerful open-source debugger for the Go programming language. Downloads and documentation for Delve are available on GitHub at . +## Performance profiling + +Performance profiling capabilities within zot allow a zot [administrator](../articles/authn-authz.md) to collect and export a range of diagnostic performance data such as CPU intensive function calls, memory allocations, and execution traces. The collected data can then be analyzed using Go tools and a variety of available visualization tools. + +For detailed information about performance profiling, see [Performance Profiling in zot](../articles/pprofiling.md). + ## Code Organization The zot project codebase is organized as follows: diff --git a/docs/general/whats-new.md b/docs/general/whats-new.md index ad0e866..2012a08 100644 --- a/docs/general/whats-new.md +++ b/docs/general/whats-new.md @@ -52,6 +52,10 @@ - You can adjust the background scheduler based on your deployment requirements for tasks that are handled in the background, such as garbage collection. See [Configuring zot](../admin-guide/admin-configuration.md). +### Performance profiling for troubleshooting + +- You can use zot's [built-in profiling tools](../articles/pprofiling.md) to collect and analyze runtime performance data. + ### Binaries for FreeBSD - zot binary images are available for the [FreeBSD](https://www.freebsd.org/) operating system. Supported architectures are amd64 and arm64. diff --git a/mkdocs.yml b/mkdocs.yml index 719550e..acba44e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -122,6 +122,7 @@ nav: - Clustering: articles/clustering.md - Monitoring: articles/monitoring.md - Benchmarking with zb: articles/benchmarking-with-zb.md + - Performance Profiling: articles/pprofiling.md - Using kind for Deployment Testing: articles/kind-deploy.md extra_css: - stylesheets/custom.css