Skip to content
This repository was archived by the owner on Oct 7, 2020. It is now read-only.

Commit e1da603

Browse files
authored
Merge pull request #37 from mpickering/profiling-docs
Documentation about profiling
2 parents 89f8d83 + 8dae303 commit e1da603

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -793,3 +793,19 @@ can happen because cabal-helper compiles and runs above executable at runtime wi
793793

794794
Liquid Haskell requires an SMT solver on the path. We do not take care of installing one, thus, Liquid Haskell will not run until one is installed.
795795
The recommended SMT solver is [z3](https://github.com/Z3Prover/z3). To run the tests, it is also required to have an SMT solver on the path, otherwise the tests will fail for Liquid Haskell.
796+
797+
### Profiling `haskell-ide-engine`.
798+
799+
If you think `haskell-ide-engine` is using a lot of memory then the most useful
800+
thing you can do is prepare a profile of the memory usage whilst you're using
801+
the program.
802+
803+
1. Add `profiling: True` to the cabal.project file of `haskell-ide-engine
804+
2. `cabal new-build hie`
805+
3. (IMPORTANT) Add `profiling: True` to the `cabal.project` file of the project you want to profile.
806+
4. Make a wrapper script which calls the `hie` you built in step 2 with the additional options `+RTS -hd -l-au`
807+
5. Modify your editor settings to call this wrapper script instead of looking for `hie` on the path
808+
6. Try using `h-i-e` as normal and then process the `*.eventlog` which will be created using `eventlog2html`.
809+
7. Repeat the process again using different profiling options if you like.
810+
811+

0 commit comments

Comments
 (0)