More troubleshooting suggestions

This commit is contained in:
Bodigrim 2023-07-05 22:16:33 +01:00
parent 050232ad9a
commit 8b9f5850d1
3 changed files with 39 additions and 0 deletions

View File

@ -361,6 +361,24 @@ look for another way to speed up generation of Fibonacci numbers.
`Test.Tasty.Bench.defaultMain` and not `Test.Tasty.defaultMain`. Note that
`localOption (NumThreads 1)` quashes the warning, but does not eliminate the cause.
* If benchmarks using GHC 9.4.4+ segfault on Windows, check that you
are not using non-moving garbage collector `--nonmoving-gc`. This is likely caused
by [GHC issue](https://gitlab.haskell.org/ghc/ghc/-/issues/23003).
Previous releases of `tasty-bench` recommended enabling `--nonmoving-gc`
to stabilise benchmarks, but it's discouraged now.
* If you see
```
<stdout>: commitBuffer: invalid argument (cannot encode character '\177')
```
it means that your locale does not support UTF-8. `tasty-bench` makes an effort
to force locale to UTF-8, but sometimes, when benchmarks are a part of
a larger application, it's [impossible](https://gitlab.haskell.org/ghc/ghc/-/issues/23606)
to do so. In such case run `locale -a` to list available locales and set a UTF-8-capable
one (e. g., `export LANG=C.UTF-8`) before starting benchmarks.
## Isolating interfering benchmarks
One difficulty of benchmarking in Haskell is that it is

View File

@ -31,6 +31,8 @@ sed -i '' 's/@--baseline FILE@/@--baseline@ @FILE@/g' README.haddock
sed -i '' 's/@+RTS -T@/@+RTS@ @-T@/g' README.haddock
sed -i '' 's/@+RTS -A32m@/@+RTS@ @-A32m@/g' README.haddock
sed -i '' 's/@+RTS --nonmoving-gc@/@+RTS@ @--nonmoving-gc@/g' README.haddock
sed -i '' 's/@locale -a/@locale@ @-a/g' README.haddock
sed -i '' 's/@export LANG/@export@ @LANG/g' README.haddock
sed -i '' "s/@bench --benchmark-options/@bench@ @--benchmark-options/g" README.haddock
sed -i '' "s/@bench --ba/@bench@ @--ba/g" README.haddock

View File

@ -329,6 +329,25 @@ another way to speed up generation of Fibonacci numbers.
not @Test.Tasty.@'Test.Tasty.defaultMain'. Note that 'localOption' ('NumThreads' 1)
quashes the warning, but does not eliminate the cause.
- If benchmarks using GHC 9.4.4+ segfault on Windows, check that you
are not using non-moving garbage collector @--nonmoving-gc@. This is
likely caused by
<https://gitlab.haskell.org/ghc/ghc/-/issues/23003 GHC issue>.
Previous releases of @tasty-bench@ recommended enabling
@--nonmoving-gc@ to stabilise benchmarks, but its discouraged now.
- If you see
> <stdout>: commitBuffer: invalid argument (cannot encode character '\177')
it means that your locale does not support UTF-8. @tasty-bench@
makes an effort to force locale to UTF-8, but sometimes, when
benchmarks are a part of a larger application, its
<https://gitlab.haskell.org/ghc/ghc/-/issues/23606 impossible> to do
so. In such case run @locale@ @-a@ to list available locales and set a
UTF-8-capable one (e. g., @export@ @LANG=C.UTF-8@) before starting
benchmarks.
=== Isolating interfering benchmarks
One difficulty of benchmarking in Haskell is that it is hard to isolate