Можно ли использовать критерий для профилирования параллелизма между несколькими ядрами?
Я замечаю, что когда я запускаю критерий критерия (который не forkIO
или же par
) составлено с -O2 -rtsopts -threaded -eventlog
а также +RTS -N2 -ls
эта реальная работа (не только GC) распределена по обоим ядрам. Быстрый обзор источника критерия не показал, откуда возник параллелизм.
Я хотел бы сделать некоторые тщательные измерения, например, спорные обновления на MVar между двумя потоками; Могу ли я сделать это точно с критерием (например, если весь этот параллелизм происходит между тестами)?
1 ответ
Решение
Я воткнул traceEventIO
до и после каждого тестируемого действия ввода-вывода, и оно выглядит полностью однопоточным на время выполнения тестового кода, так что я думаю, что должно быть хорошо.