Skip to content

Commit 7dbd38a

Browse files
committed
Add a note about the methods of performance analisys
1 parent 7ea9ebb commit 7dbd38a

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

dev/Methods.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Methods
2+
3+
There are 2 methods of measuring accurate haskell performance.
4+
5+
## Eventlog method
6+
7+
__Pros__:
8+
9+
- Enables us to perform extensive analisys.
10+
- We can understand the state of the system completely at any given time.
11+
- We can make more elaborate windows.
12+
- We can see all the other threads in a given window.
13+
- The windows are not confined to a single thread.
14+
- Relatievely less invasive change in the RTS.
15+
16+
__Cons__:
17+
18+
- Overhead of measurement is more.
19+
- Collecting metrics while the app is running in production is not straight.
20+
forward and requires more moving parts.
21+
22+
## ThreadCPUTime primop method
23+
24+
__Pros__:
25+
26+
- Low measurement overhead.
27+
- Collecting metrics in production is straight forward.
28+
29+
__Cons__:
30+
31+
- Relatively more invasive.
32+
- Very simple analisys. Relative analisys isn't possible to understand the system.
33+
34+
__Implementation detail__:
35+
36+
- We need to hang the perfomance counters block from the TSO.
37+
- On every tield we can update the perf counters.
38+
- To get the updated value of the counter we need to yield.

0 commit comments

Comments
 (0)