-
-
Notifications
You must be signed in to change notification settings - Fork 412
Closed
Labels
performanceIssues about memory consumption, responsiveness, etc.Issues about memory consumption, responsiveness, etc.status: needs infoNot actionable, because there's missing informationNot actionable, because there's missing informationtype: bugSomething isn't right: doesn't work as intended, documentation is missing/outdated, etc..Something isn't right: doesn't work as intended, documentation is missing/outdated, etc..
Description
I noticed a startup performance regression when upgrading from 0.1.0 -> 0.2.0:
Before on 0.1.0 running time ghcide took 7.44s user 0.95s system 108% cpu 7.760 total.
Ran the above command after this commit:
willbush/exercises@c5611df
λ ~/code/exercises/haskell-exercises/ ghcide-0.2.0-update* ghcide --version
ghcide version: 0.1.0 (GHC: 8.8.3) (PATH: /nix/store/48ajx48f59s0yqd6qb34zj7xzhgn3vc9-ghcide-0.1.0/bin/ghcide)
λ ~/code/exercises/haskell-exercises/ ghcide-0.2.0-update time ghcide
ghcide version: 0.1.0 (GHC: 8.8.3) (PATH: /nix/store/48ajx48f59s0yqd6qb34zj7xzhgn3vc9-ghcide-0.1.0/bin/ghcide)
Ghcide setup tester in /home/will/code/exercises/haskell-exercises.
Report bugs at https://github.com/digital-asset/ghcide/issues
Step 1/6: Finding files to test in /home/will/code/exercises/haskell-exercises
Found 18 files
Step 2/6: Looking for hie.yaml files that control setup
Found 1 cradle
Step 3/6, Cradle 1/1: Loading /home/will/code/exercises/haskell-exercises/hie.yaml
Step 4/6, Cradle 1/1: Loading GHC Session
Step 5/6: Initializing the IDE
Step 6/6: Type checking the files
File: /home/will/code/exercises/haskell-exercises/bench/BenchAll.hs
Hidden: no
Range: 3:17-3:31
Source: not found
Severity: DsError
Message:
Could not load module ‘Criterion.Main’
It is a member of the hidden package ‘criterion-1.5.6.2’.
Perhaps you need to add ‘criterion’ to the build-depends in your .cabal file.
Files that failed:
* /home/will/code/exercises/haskell-exercises/bench/BenchAll.hs
Completed (17 files worked, 1 file failed)
ghcide 7.44s user 0.95s system 108% cpu 7.760 total
λ ~/code/exercises/haskell-exercises/ ghcide-0.2.0-update
After upgrading to 0.2.0 running time ghcide took 69.99s user 1.81s system 106% cpu 1:07.33 total.
Ran the above command after this commit:
willbush/exercises@0627ace
Important to note that this is using the new multi-components feature which fix the bench component error that I was ignoring before.
λ ~/code/exercises/haskell-exercises/ ghcide-0.2.0-update* ghcide --version
ghcide version: 0.2.0 (GHC: 8.8.3) (PATH: /nix/store/ngv8g1lv1nzwqp0wac5d0i6vfmxsj122-ghcide-0.2.0/bin/ghcide)
λ ~/code/exercises/haskell-exercises/ ghcide-0.2.0-update* time ghcide
ghcide version: 0.2.0 (GHC: 8.8.3) (PATH: /nix/store/ngv8g1lv1nzwqp0wac5d0i6vfmxsj122-ghcide-0.2.0/bin/ghcide)
Ghcide setup tester in /home/will/code/exercises/haskell-exercises.
Report bugs at https://github.com/digital-asset/ghcide/issues
Step 1/4: Finding files to test in /home/will/code/exercises/haskell-exercises
Found 18 files
Step 2/4: Looking for hie.yaml files that control setup
Found 1 cradle
Step 3/4: Initializing the IDE
Step 4/4: Type checking the files
[INFO] Consulting the cradle for "/home/will/code/exercises/haskell-exercises/test/AdventOfCode/Day4Spec.hs"
> Resolving dependencies...
> Build profile: -w ghc-8.8.3 -O1
> In order, the following will be built (use -v for more details):
> - haskell-exercises-0.1.0.0 (lib) (configuration changed)
> - haskell-exercises-0.1.0.0 (test:haskell-exercises-test) (configuration changed)
> Configuring library for haskell-exercises-0.1.0.0..
> Preprocessing library for haskell-exercises-0.1.0.0..
> Building library for haskell-exercises-0.1.0.0..
> [1 of 9] Compiling AdventOfCode.Day1 ( src/AdventOfCode/Day1.hs, /home/will/code/exercises/haskell-exercises/dist-newstyle/build/x86_64-linux/ghc-8.8.3/haskell-exercises-0.1.0.0/build/AdventOfCode/Day1.o ) [Splint changed]
> [2 of 9] Compiling AdventOfCode.Day3 ( src/AdventOfCode/Day3.hs, /home/will/code/exercises/haskell-exercises/dist-newstyle/build/x86_64-linux/ghc-8.8.3/haskell-exercises-0.1.0.0/build/AdventOfCode/Day3.o ) [Data.List.Extra changed]
> [3 of 9] Compiling AdventOfCode.Day4 ( src/AdventOfCode/Day4.hs, /home/will/code/exercises/haskell-exercises/dist-newstyle/build/x86_64-linux/ghc-8.8.3/haskell-exercises-0.1.0.0/build/AdventOfCode/Day4.o ) [Splint changed]
> [4 of 9] Compiling AdventOfCode.Day5 ( src/AdventOfCode/Day5.hs, /home/will/code/exercises/haskell-exercises/dist-newstyle/build/x86_64-linux/ghc-8.8.3/haskell-exercises-0.1.0.0/build/AdventOfCode/Day5.o ) [Splint changed]
> [5 of 9] Compiling Common.Fibonacci ( src/Common/Fibonacci.hs, /home/will/code/exercises/haskell-exercises/dist-newstyle/build/x86_64-linux/ghc-8.8.3/haskell-exercises-0.1.0.0/build/Common/Fibonacci.o ) [Splint changed]
> [6 of 9] Compiling Common.Helpers ( src/Common/Helpers.hs, /home/will/code/exercises/haskell-exercises/dist-newstyle/build/x86_64-linux/ghc-8.8.3/haskell-exercises-0.1.0.0/build/Common/Helpers.o ) [Splint changed]
> [7 of 9] Compiling Common.Primes ( src/Common/Primes.hs, /home/will/code/exercises/haskell-exercises/dist-newstyle/build/x86_64-linux/ghc-8.8.3/haskell-exercises-0.1.0.0/build/Common/Primes.o ) [Splint changed]
> [8 of 9] Compiling AdventOfCode.Day2 ( src/AdventOfCode/Day2.hs, /home/will/code/exercises/haskell-exercises/dist-newstyle/build/x86_64-linux/ghc-8.8.3/haskell-exercises-0.1.0.0/build/AdventOfCode/Day2.o )
> [9 of 9] Compiling ProjectEuler.Problems ( src/ProjectEuler/Problems.hs, /home/will/code/exercises/haskell-exercises/dist-newstyle/build/x86_64-linux/ghc-8.8.3/haskell-exercises-0.1.0.0/build/ProjectEuler/Problems.o )
> Configuring test suite 'haskell-exercises-test' for haskell-exercises-0.1.0.0..
> Warning: The package has an extraneous version range for a dependency on an
> internal library: haskell-exercises -any && ==0.1.0.0, haskell-exercises -any
> && ==0.1.0.0. This version range includes the current package but isn't needed
> as the current package's library will always be used.
> Preprocessing test suite 'haskell-exercises-test' for haskell-exercises-0.1.0.0..
[INFO] Using interface files cache dir: /home/will/.cache/ghcide/main-eefdd04e13d0e88bd75d0b0b3aceed75a156f06a
[INFO] Making new HscEnv[main]
[INFO] Consulting the cradle for "/home/will/code/exercises/haskell-exercises/src/ProjectEuler/Problems.hs"
> Resolving dependencies...
> Build profile: -w ghc-8.8.3 -O1
> In order, the following will be built (use -v for more details):
> - haskell-exercises-0.1.0.0 (lib) (configuration changed)
> Configuring library for haskell-exercises-0.1.0.0..
> Preprocessing library for haskell-exercises-0.1.0.0..
[INFO] Using interface files cache dir: /home/will/.cache/ghcide/haskell-exercises-0.1.0.0-inplace-e22b30c2e452d949bb9ce34e1d96b55943a90485
[INFO] Using interface files cache dir: /home/will/.cache/ghcide/main-12942c39ee6a446941e165d3567bce01bd75f3c4
[INFO] Making new HscEnv[haskell-exercises-0.1.0.0-inplace,main]
[INFO] Consulting the cradle for "/home/will/code/exercises/haskell-exercises/bench/BenchAll.hs"
> Resolving dependencies...
> Build profile: -w ghc-8.8.3 -O1
> In order, the following will be built (use -v for more details):
> - haskell-exercises-0.1.0.0 (lib) (configuration changed)
> - haskell-exercises-0.1.0.0 (bench:haskell-exercises-bench) (configuration changed)
> Configuring library for haskell-exercises-0.1.0.0..
> Preprocessing library for haskell-exercises-0.1.0.0..
> Building library for haskell-exercises-0.1.0.0..
> Configuring benchmark 'haskell-exercises-bench' for haskell-exercises-0.1.0.0..
> Warning: The package has an extraneous version range for a dependency on an
> internal library: haskell-exercises -any && ==0.1.0.0, haskell-exercises -any
> && ==0.1.0.0. This version range includes the current package but isn't needed
> as the current package's library will always be used.
> Preprocessing benchmark 'haskell-exercises-bench' for haskell-exercises-0.1.0.0..
[INFO] Using interface files cache dir: /home/will/.cache/ghcide/main-048d6160eb48c12c9a06d27f4ee3a06cb0d87269
[INFO] Using interface files cache dir: /home/will/.cache/ghcide/haskell-exercises-0.1.0.0-inplace-ddfa2433c6638ac0417ba23f186728f884edea76
[INFO] Using interface files cache dir: /home/will/.cache/ghcide/main-048d6160eb48c12c9a06d27f4ee3a06cb0d87269
[INFO] Making new HscEnv[main,haskell-exercises-0.1.0.0-inplace,main]
Completed (18 files worked, 0 files failed)
ghcide 69.99s user 1.81s system 106% cpu 1:07.33 total
λ ~/code/exercises/haskell-exercises/ ghcide-0.2.0-update*
It hangs for a while after logging Preprocessing benchmark 'haskell-exercises-bench' for haskell-exercises-0.1.0.0.. using ~100% CPU.
Metadata
Metadata
Assignees
Labels
performanceIssues about memory consumption, responsiveness, etc.Issues about memory consumption, responsiveness, etc.status: needs infoNot actionable, because there's missing informationNot actionable, because there's missing informationtype: bugSomething isn't right: doesn't work as intended, documentation is missing/outdated, etc..Something isn't right: doesn't work as intended, documentation is missing/outdated, etc..