Skip to content

Significant performance regression since 1.62 #5546

Open
@pfouilloux

Description

@pfouilloux

Welcome

  • Yes, I'm using a binary release within 2 latest releases. Only such installations are supported.
  • Yes, I've searched similar issues on GitHub and didn't find any.
  • Yes, I've read the typecheck section of the FAQ.
  • Yes, I've tried with the standalone linter if available (e.g., gocritic, go vet, etc.).
  • I agree to follow this project's Code of Conduct

How did you install golangci-lint?

Other

Description of the problem

We've been struggling with very long lint times on our project, and one of our team members noticed performance was much better on version 1.61...

The examples below are a bit contrived as they are without cache. The cache does help but it's still not uncommon to see times >1min on an M4 Macbook Pro with 32GB ram when touching files that are near the root of the dependency tree, it's just a bit of a pain to benchmark that reliably.

It's even worse for team members on older hardware, with some reporting linting taking up to 10 minutes on M1/16GB Macbooks.

I've done a couple of quick benchmarks to illustrate:

Notice that the latest version is 1.5x-2x slower than 1.61.0
We've narrowed it down to somewhere between 1.61.0 and 1.62.2.

I'd be happy to have a go at improving this, but could use some assistance if there are some obvious places to check and/or updated packages that are more likely to be where the degradation is coming from.

I've used mise.jdx.dev to quickly switch between versions but we're vendoring in golangci-lint from the official binary normally.

v1.64.7 - our repo - 94.36s
golangci-lint --version && golangci-lint cache clean && time golangci-lint run -v > /dev/null
golangci-lint has version 1.64.7 built with go1.24.1 from 8cffdb7d on 2025-03-11T23:26:51Z
INFO golangci-lint has version 1.64.7 built with go1.24.1 from 8cffdb7d on 2025-03-11T23:26:51Z 
INFO [config_reader] Config search paths: [./ /Users/pfx/code/2-areas/platform /Users/pfx/code/2-areas /Users/pfx/code /Users/pfx /Users /] 
INFO [config_reader] Used config file .golangci.yml 
INFO [goenv] Read go env for 5.38825ms: map[string]string{"GOCACHE":"/Users/pfx/Library/Caches/go-build", "GOROOT":"/Users/pfx/.local/share/mise/installs/go/1.23.6"} 
INFO [lintersdb] Active 20 linters: [depguard dogsled errcheck exhaustive gci gocritic gofmt goimports goprintffuncname gosimple govet makezero predeclared revive rowserrcheck staticcheck testpackage tparallel unconvert unused] 
INFO [loader] Using build tags: [integration]     
INFO [loader] Go packages loading at mode 8767 (compiled_files|deps|exports_file|name|types_sizes|files|imports) took 1.466605s 
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 127.481083ms 
INFO [linters_context/goanalysis] analyzers took 1h15m46.143915518s with top 10 stages: buildir: 8m42.547657609s, goimports: 5m23.94896072s, the_only_name: 3m51.560881539s, unconvert: 2m26.072338515s, gocritic: 1m11.835696217s, gci: 57.167173259s, buildssa: 57.132585509s, gofmt: 51.003987963s, S1038: 50.016766632s, nilness: 34.707608705s 
INFO [runner/exclusion_rules] Skipped 1 issues by rules: [Source: "(?i)^//\\$\\(which go\\)", Linters: "gocritic"] 
INFO [runner] Issues before processing: 12730, after processing: 0 
INFO [runner] Processors filtering stat (in/out): filename_unadjuster: 12730/12730, path_relativity: 12730/12730, exclusion_paths: 12730/12730, exclusion_rules: 12730/32, path_absoluter: 12730/12730, cgo: 12730/12730, skip_dirs: 12730/12730, generated_file_filter: 12730/12730, identifier_marker: 12730/12730, nolint_filter: 32/0, invalid_issue: 12730/12730, skip_files: 12730/12730 
INFO [runner] processing took 92.27958ms with stages: generated_file_filter: 40.326083ms, exclusion_rules: 34.347916ms, skip_dirs: 5.796208ms, nolint_filter: 4.588584ms, path_relativity: 4.457083ms, invalid_issue: 829.332µs, cgo: 651.333µs, path_absoluter: 592.666µs, identifier_marker: 389.291µs, filename_unadjuster: 298.083µs, max_same_issues: 583ns, exclusion_paths: 501ns, sort_results: 459ns, fixer: 334ns, path_shortener: 167ns, diff: 167ns, skip_files: 125ns, source_code: 125ns, path_prettifier: 125ns, uniq_by_line: 125ns, max_from_linter: 124ns, max_per_file_from_linter: 83ns, severity-rules: 83ns 
INFO [runner] linters took 1m32.621252209s with stages: goanalysis_metalinter: 1m32.528679083s 
INFO File cache stats: 8 entries of total size 132.3KiB 
INFO Memory: 856 samples, avg is 3342.7MB, max is 5435.0MB 
INFO Execution took 1m34.23183775s                

________________________________________________________
Executed in   94.36 secs    fish           external
   usr time  209.44 secs   29.00 micros  209.44 secs
   sys time  208.56 secs  320.00 micros  208.56 secs
v1.64.7 - golangci-lint repo - 13.96s
golangci-lint --version && golangci-lint cache clean && time golangci-lint run -v > /dev/null
golangci-lint has version 1.64.7 built with go1.24.1 from 8cffdb7d on 2025-03-11T23:26:51Z
INFO golangci-lint has version 1.64.7 built with go1.24.1 from 8cffdb7d on 2025-03-11T23:26:51Z 
INFO [config_reader] Config search paths: [./ /Users/pfx/code/3-resources/golangci-lint /Users/pfx/code/3-resources /Users/pfx/code /Users/pfx /Users /] 
INFO [config_reader] Used config file .golangci.yml 
INFO [goenv] Read go env for 5.256333ms: map[string]string{"GOCACHE":"/Users/pfx/Library/Caches/go-build", "GOROOT":"/Users/pfx/.local/share/mise/installs/go/1.24.1"} 
INFO [lintersdb] Active 20 linters: [depguard dogsled errcheck exhaustive gci gocritic gofmt goimports goprintffuncname gosimple govet makezero predeclared revive rowserrcheck staticcheck testpackage tparallel unconvert unused] 
INFO [loader] Using build tags: [integration]     
INFO [loader] Go packages loading at mode 8767 (compiled_files|exports_file|imports|deps|files|name|types_sizes) took 739.015709ms 
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 10.975208ms 
INFO [linters_context/goanalysis] analyzers took 4m51.309911657s with top 10 stages: buildir: 1m12.353763424s, the_only_name: 23.068014253s, goimports: 20.804942005s, unconvert: 9.847325041s, fact_deprecated: 5.849002084s, exhaustive: 5.800382049s, gocritic: 5.37269097s, printf: 4.918556524s, ctrlflow: 4.533309826s, inspect: 4.352578737s 
INFO [runner/exclusion_rules] Skipped 0 issues by rules: [Source: "(?i)^//\\$\\(which go\\)", Linters: "gocritic"] 
INFO [runner] Issues before processing: 1692, after processing: 507 
INFO [runner] Processors filtering stat (in/out): path_relativity: 1692/1692, exclusion_paths: 1692/1692, generated_file_filter: 1692/1692, exclusion_rules: 1692/721, uniq_by_line: 717/709, severity-rules: 507/507, filename_unadjuster: 1692/1692, skip_dirs: 1692/1692, nolint_filter: 721/717, diff: 717/717, max_from_linter: 507/507, path_absoluter: 1692/1692, fixer: 717/717, max_same_issues: 507/507, skip_files: 1692/1692, identifier_marker: 1692/1692, max_per_file_from_linter: 709/507, source_code: 507/507, path_shortener: 507/507, path_prettifier: 507/507, sort_results: 507/507, cgo: 1692/1692, invalid_issue: 1692/1692 
INFO [runner] processing took 40.778542ms with stages: nolint_filter: 18.315292ms, generated_file_filter: 8.054291ms, exclusion_rules: 7.948125ms, source_code: 3.874584ms, skip_dirs: 844.501µs, path_relativity: 609.875µs, sort_results: 545.875µs, uniq_by_line: 108.208µs, invalid_issue: 82µs, cgo: 78.708µs, path_absoluter: 78.375µs, identifier_marker: 72.333µs, max_per_file_from_linter: 56.833µs, path_shortener: 52.25µs, filename_unadjuster: 40.75µs, path_prettifier: 14.5µs, max_same_issues: 707ns, exclusion_paths: 375ns, fixer: 293ns, max_from_linter: 208ns, severity-rules: 167ns, skip_files: 167ns, diff: 125ns 
INFO [runner] linters took 13.1195375s with stages: goanalysis_metalinter: 13.078657625s 
INFO File cache stats: 364 entries of total size 791.6KiB 
INFO Memory: 140 samples, avg is 988.9MB, max is 1386.7MB 
INFO Execution took 13.882652917s                 

________________________________________________________
Executed in   13.96 secs    fish           external
   usr time   46.60 secs   28.00 micros   46.60 secs
   sys time   36.50 secs  290.00 micros   36.50 secs

v1.61.0 - our repo - 30.48s
golangci-lint --version && golangci-lint cache clean && time golangci-lint run -v > /dev/null
golangci-lint has version 1.61.0 built with go1.23.1 from a1d6c560 on 2024-09-09T17:44:42Z
INFO golangci-lint has version 1.61.0 built with go1.23.1 from a1d6c560 on 2024-09-09T17:44:42Z 
INFO [config_reader] Config search paths: [./ /Users/pfx/code/2-areas/platform /Users/pfx/code/2-areas /Users/pfx/code /Users/pfx /Users /] 
INFO [config_reader] Used config file .golangci.yml 
INFO [lintersdb] Active 20 linters: [depguard dogsled errcheck exhaustive gci gocritic gofmt goimports goprintffuncname gosimple govet makezero predeclared revive rowserrcheck staticcheck testpackage tparallel unconvert unused] 
INFO [loader] Using build tags: [integration]     
INFO [loader] Go packages loading at mode 575 (deps|imports|name|types_sizes|compiled_files|files|exports_file) took 1.232954542s 
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 122.858917ms 
INFO [linters_context/goanalysis] analyzers took 16m46.333819152s with top 10 stages: buildir: 2m32.081693002s, the_only_name: 1m16.605160047s, unconvert: 48.191368608s, gci: 33.988684293s, goimports: 30.439255918s, buildssa: 27.443786584s, gocritic: 20.463837861s, gofmt: 19.537270587s, S1038: 16.578077052s, fact_deprecated: 13.950451036s 
INFO [runner] Issues before processing: 12734, after processing: 0 
INFO [runner] Processors filtering stat (in/out): nolint: 32/0, invalid_issue: 12734/12734, skip_dirs: 12734/12734, identifier_marker: 12734/12734, cgo: 12734/12734, exclude-rules: 12734/32, filename_unadjuster: 12734/12734, path_prettifier: 12734/12734, skip_files: 12734/12734, autogenerated_exclude: 12734/12734, exclude: 12734/12734 
INFO [runner] processing took 551.290668ms with stages: autogenerated_exclude: 222.735042ms, exclude-rules: 178.508584ms, identifier_marker: 111.570542ms, path_prettifier: 26.301792ms, skip_dirs: 5.5495ms, nolint: 4.612708ms, cgo: 788.5µs, invalid_issue: 764.916µs, filename_unadjuster: 456.5µs, sort_results: 1.084µs, max_same_issues: 375ns, uniq_by_line: 249ns, diff: 167ns, skip_files: 166ns, fixer: 125ns, max_per_file_from_linter: 84ns, max_from_linter: 83ns, exclude: 83ns, path_shortener: 42ns, path_prefixer: 42ns, source_code: 42ns, severity-rules: 42ns 
INFO [runner] linters took 28.966006458s with stages: goanalysis_metalinter: 28.414657167s 
INFO File cache stats: 8 entries of total size 132.3KiB 
INFO Memory: 300 samples, avg is 3108.3MB, max is 5292.8MB 
INFO Execution took 30.331369708s                 

________________________________________________________
Executed in   30.48 secs    fish           external
   usr time  207.87 secs   41.00 micros  207.87 secs
   sys time   30.33 secs  352.00 micros   30.33 secs
v1.61.0 - golangci-lint repo - 7.28s
golangci-lint --version && golangci-lint cache clean && time golangci-lint run -v > /dev/null
golangci-lint has version 1.61.0 built with go1.23.1 from a1d6c560 on 2024-09-09T17:44:42Z
INFO golangci-lint has version 1.61.0 built with go1.23.1 from a1d6c560 on 2024-09-09T17:44:42Z 
INFO [config_reader] Config search paths: [./ /Users/pfx/code/3-resources/golangci-lint /Users/pfx/code/3-resources /Users/pfx/code /Users/pfx /Users /] 
INFO [config_reader] Used config file .golangci.yml 
INFO [lintersdb] Active 20 linters: [depguard dogsled errcheck exhaustive gci gocritic gofmt goimports goprintffuncname gosimple govet makezero predeclared revive rowserrcheck staticcheck testpackage tparallel unconvert unused] 
INFO [loader] Using build tags: [integration]     
INFO [loader] Go packages loading at mode 575 (compiled_files|name|types_sizes|deps|exports_file|files|imports) took 568.71375ms 
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 11.621ms 
INFO [linters_context/goanalysis] analyzers took 2m40.209582595s with top 10 stages: SA5012: 2.128580502s, nilness: 1.946276669s, SA1028: 1.686747091s, SA1024: 1.548594294s, SA5011: 1.507124704s, exhaustive: 1.470268658s, ctrlflow: 1.46878338s, SA1023: 1.448945918s, SA1003: 1.434683541s, SA6001: 1.425019419s 
INFO [runner] Issues before processing: 35161, after processing: 187 
INFO [runner] Processors filtering stat (in/out): exclude-rules: 35154/35154, uniq_by_line: 35154/187, max_from_linter: 187/187, path_shortener: 187/187, severity-rules: 187/187, filename_unadjuster: 35161/35161, skip_files: 35154/35154, fixer: 187/187, nolint: 35154/35154, diff: 187/187, identifier_marker: 35154/35154, exclude: 35154/35154, max_per_file_from_linter: 187/187, max_same_issues: 187/187, path_prefixer: 187/187, cgo: 35161/35161, invalid_issue: 35161/35154, autogenerated_exclude: 35154/35154, source_code: 187/187, sort_results: 187/187, path_prettifier: 35154/35154, skip_dirs: 35154/35154 
INFO [runner] processing took 194.384832ms with stages: identifier_marker: 180.004375ms, path_prettifier: 7.5295ms, autogenerated_exclude: 2.596916ms, source_code: 878.167µs, skip_dirs: 602µs, uniq_by_line: 518.5µs, filename_unadjuster: 498.958µs, invalid_issue: 476.708µs, nolint: 470.958µs, cgo: 470.375µs, exclude-rules: 291.626µs, sort_results: 33.333µs, path_shortener: 8.708µs, max_per_file_from_linter: 3.376µs, max_same_issues: 375ns, fixer: 251ns, skip_files: 249ns, exclude: 208ns, diff: 166ns, max_from_linter: 83ns, path_prefixer: 0s, severity-rules: 0s 
INFO [runner] linters took 6.614266333s with stages: goanalysis_metalinter: 6.419802625s 
INFO File cache stats: 52 entries of total size 268.5KiB 
INFO Memory: 74 samples, avg is 1585.9MB, max is 2155.2MB 
INFO Execution took 7.202327208s                  

________________________________________________________
Executed in    7.28 secs    fish           external
   usr time   18.55 secs   47.00 micros   18.55 secs
   sys time    6.36 secs  519.00 micros    6.36 secs

v1.62.2 - our repo - 98.60s
golangci-lint --version && golangci-lint cache clean && time golangci-lint run -v > /dev/null
golangci-lint has version 1.62.2 built with go1.23.3 from 89476e7a on 2024-11-25T14:16:01Z
INFO golangci-lint has version 1.62.2 built with go1.23.3 from 89476e7a on 2024-11-25T14:16:01Z 
INFO [config_reader] Config search paths: [./ /Users/pfx/code/2-areas/platform /Users/pfx/code/2-areas /Users/pfx/code /Users/pfx /Users /] 
INFO [config_reader] Used config file .golangci.yml 
INFO [lintersdb] Active 20 linters: [depguard dogsled errcheck exhaustive gci gocritic gofmt goimports goprintffuncname gosimple govet makezero predeclared revive rowserrcheck staticcheck testpackage tparallel unconvert unused] 
INFO [loader] Using build tags: [integration]     
INFO [loader] Go packages loading at mode 8767 (types_sizes|compiled_files|imports|name|deps|exports_file|files) took 1.327498291s 
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 131.053334ms 
INFO [linters_context/goanalysis] analyzers took 1h8m32.901853981s with top 10 stages: buildir: 9m24.29088962s, goimports: 5m44.991186468s, the_only_name: 4m17.010925691s, unconvert: 2m37.044259555s, gci: 1m39.809556491s, gocritic: 1m5.701493456s, S1038: 58.342486334s, buildssa: 57.010763741s, gofmt: 45.747209843s, nilness: 31.878821318s 
INFO [runner] Issues before processing: 12732, after processing: 0 
INFO [runner] Processors filtering stat (in/out): autogenerated_exclude: 12732/12732, identifier_marker: 12732/12732, exclude-rules: 12732/32, skip_files: 12732/12732, filename_unadjuster: 12732/12732, cgo: 12732/12732, exclude: 12732/12732, path_prettifier: 12732/12732, skip_dirs: 12732/12732, nolint: 32/0, invalid_issue: 12732/12732 
INFO [runner] processing took 365.183541ms with stages: exclude-rules: 179.636333ms, identifier_marker: 103.203583ms, autogenerated_exclude: 40.551667ms, path_prettifier: 29.495084ms, skip_dirs: 5.52225ms, nolint: 4.782542ms, invalid_issue: 905µs, cgo: 709.875µs, filename_unadjuster: 373.708µs, max_same_issues: 833ns, sort_results: 708ns, fixer: 333ns, skip_files: 292ns, exclude: 249ns, diff: 209ns, uniq_by_line: 207ns, max_from_linter: 168ns, source_code: 167ns, max_per_file_from_linter: 126ns, path_prefixer: 83ns, severity-rules: 83ns, path_shortener: 41ns 
INFO [runner] linters took 1m37.007741375s with stages: goanalysis_metalinter: 1m36.642083042s 
INFO File cache stats: 8 entries of total size 132.3KiB 
INFO Memory: 850 samples, avg is 3482.6MB, max is 5375.6MB 
INFO Execution took 1m38.476208375s               

________________________________________________________
Executed in   98.60 secs    fish           external
   usr time  227.91 secs   30.00 micros  227.91 secs
   sys time  212.68 secs  318.00 micros  212.68 secs
v1.62.2 - golangci-lint repo - 14.85
golangci-lint --version && golangci-lint cache clean && time golangci-lint run -v > /dev/null
golangci-lint has version 1.62.2 built with go1.23.3 from 89476e7a on 2024-11-25T14:16:01Z
INFO golangci-lint has version 1.62.2 built with go1.23.3 from 89476e7a on 2024-11-25T14:16:01Z 
INFO [config_reader] Config search paths: [./ /Users/pfx/code/3-resources/golangci-lint /Users/pfx/code/3-resources /Users/pfx/code /Users/pfx /Users /] 
INFO [config_reader] Used config file .golangci.yml 
INFO [lintersdb] Active 20 linters: [depguard dogsled errcheck exhaustive gci gocritic gofmt goimports goprintffuncname gosimple govet makezero predeclared revive rowserrcheck staticcheck testpackage tparallel unconvert unused] 
INFO [loader] Using build tags: [integration]     
INFO [loader] Go packages loading at mode 8767 (name|types_sizes|compiled_files|exports_file|imports|deps|files) took 707.264917ms 
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 11.109042ms 
INFO [linters_context/goanalysis] analyzers took 5m30.715674987s with top 10 stages: buildir: 1m25.380368252s, goimports: 24.455756046s, the_only_name: 16.965053422s, unconvert: 11.006405117s, gci: 9.865992166s, gocritic: 7.403908004s, fact_deprecated: 6.79777734s, exhaustive: 6.253641751s, inspect: 5.580758556s, printf: 5.428318296s 
INFO [runner] Issues before processing: 1691, after processing: 708 
INFO [runner] Processors filtering stat (in/out): filename_unadjuster: 1691/1691, invalid_issue: 1691/1691, path_prettifier: 1691/1691, skip_files: 1691/1691, skip_dirs: 1691/1691, exclude: 1691/1691, uniq_by_line: 716/708, max_same_issues: 708/708, fixer: 708/708, sort_results: 708/708, exclude-rules: 1691/720, nolint: 720/716, diff: 708/708, max_from_linter: 708/708, path_prefixer: 708/708, max_per_file_from_linter: 708/708, path_shortener: 708/708, cgo: 1691/1691, autogenerated_exclude: 1691/1691, identifier_marker: 1691/1691, source_code: 708/708, severity-rules: 708/708 
INFO [runner] processing took 68.001703ms with stages: exclude-rules: 21.502458ms, nolint: 17.134583ms, identifier_marker: 11.470291ms, autogenerated_exclude: 7.751666ms, path_prettifier: 4.560917ms, source_code: 3.691458ms, skip_dirs: 836.166µs, sort_results: 661.75µs, cgo: 112.542µs, uniq_by_line: 89.083µs, invalid_issue: 79.708µs, path_shortener: 51.958µs, filename_unadjuster: 42.083µs, max_per_file_from_linter: 15.043µs, max_same_issues: 833ns, diff: 250ns, skip_files: 250ns, max_from_linter: 208ns, severity-rules: 166ns, fixer: 166ns, exclude: 83ns, path_prefixer: 41ns 
INFO [runner] linters took 14.034032s with stages: goanalysis_metalinter: 13.965913208s 
INFO File cache stats: 357 entries of total size 759.8KiB 
INFO Memory: 146 samples, avg is 905.3MB, max is 1116.3MB 
INFO Execution took 14.760288791s                 

________________________________________________________
Executed in   14.85 secs    fish           external
   usr time   50.16 secs   30.00 micros   50.16 secs
   sys time   34.69 secs  337.00 micros   34.69 secs

Version of golangci-lint

$ golangci-lint --version
golangci-lint has version 1.64.7 built with go1.24.1 from 8cffdb7d on 2025-03-11T23:26:51Z```

Configuration

# Clearing the cache for apples to apples comparison of running time. Performance still very much slower than 1.61 with cache.
golangci-lint cache clean && time golangci-lint run -v
run:
  allow-parallel-runners: true
  build-tags:
    - integration
  timeout: 5m

output:
  sort-results: true

linters:
  disable-all: true
  enable:
    - dogsled
    - errcheck
    - exhaustive
    - gci
    - gocritic
    - gofmt
    - goimports
    - revive
    - goprintffuncname
    - gosimple
    - govet
    - makezero
    - predeclared
    - staticcheck
    - testpackage
    - tparallel
    - typecheck
    - unconvert
    - depguard
    - unused
    - rowserrcheck

linters-settings:
  rowserrcheck:
    packages:
      - github.com/jackc/pgx/v5
  errcheck:
    check-blank: false # Will be enabled in a follow-up commit
  depguard:
    rules:
      main:
        list-mode: lax
        files:
          - "**/handler/**/main.go"
        allow:
          - $gostd
        deny:
          - pkg: "github.com/aws/aws-lambda-go/lambda"
            desc: The usage of this package here is probably a mistake. If you're trying to call lambda.start change it to modules/defaults.start instead (check out other handlers for a complete example). If this is a false positive, please tweak this rule on .golangci.yml

issues:
  max-issues-per-linter: 0
  max-same-issues: 0
  exclude-rules:
    - source: "^//\\$\\(which go\\)"
      linters:
        - gocritic

Go environment

$ go version && go env
GO111MODULE=''
GOARCH='arm64'
GOBIN='/Users/pfx/.local/share/mise/installs/go/1.23.6/bin'
GOCACHE='/Users/pfx/Library/Caches/go-build'
GOENV='/Users/pfx/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/pfx/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Users/pfx/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/Users/pfx/.local/share/mise/installs/go/1.23.6'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/Users/pfx/.local/share/mise/installs/go/1.23.6/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.23.6'
GODEBUG=''
GOTELEMETRY='local'
GOTELEMETRYDIR='/Users/pfx/Library/Application Support/go/telemetry'
GCCGO='gccgo'
GOARM64='v8.0'
AR='ar'
CC='clang'
CXX='clang++'
CGO_ENABLED='1'
GOMOD='/Users/pfx/code/2-areas/platform/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/sy/2gb8vxt11bxcxv0tjywtfz480000gn/T/go-build256349768=/tmp/go-build -gno-record-gcc-switches -fno-common'

Verbose output of running

$ golangci-lint cache clean
$ golangci-lint run -v
# paste output here

A minimal reproducible example or link to a public repository

I copied the config above into the golangci-lint repo and ran the lints here.
It's less glaring because our repo is larger, but we can still see the time is almost doubled on versions > 1.61

Validation

  • Yes, I've included all information above (version, config, etc.).

Supporter

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions