Информация об изменениях

Сообщение Re[9]: Интерфейсы против функций от 14.01.2021 20:36

Изменено 14.01.2021 20:38 Poopy Joe

Re[9]: Интерфейсы против функций
Здравствуйте, D. Mon, Вы писали:

DM>Здравствуйте, Poopy Joe, Вы писали:


DM>>>В Хаскеле есть и зеленые потоки, вроде горутин, и обычные системные. Наверняка регулируется. Но толку-то, если сборщику нужно старое поколение собирать, он все равно все остановит, ибо старое поколение кучи общее для всех потоков, а чистить параллельно, как в свежих версиях Го, он пока не умеет, вроде.


PJ>>Разве не оно?!

PJ>>https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/local-gc.pdf

DM>А оно есть в GHC из коробки? А не в чьей-то частной ветке?


Из коробки.
-qg ⟨gen⟩¶
Default
0

Since
6.12.1

Use parallel GC in generation ⟨gen⟩ and higher. Omitting ⟨gen⟩ turns off the parallel GC completely, reverting to sequential GC.

The default parallel GC settings are usually suitable for parallel programs (i.e. those using GHC.Conc.par, Strategies, or with multiple threads). However, it is sometimes beneficial to enable the parallel GC for a single-threaded sequential program too, especially if the program has a large amount of heap data and GC is a significant fraction of runtime. To use the parallel GC in a sequential program, enable the parallel runtime with a suitable -N ⟨x⟩ option, and additionally it might be beneficial to restrict parallel GC to the old generation with -qg1.
Re[9]: Интерфейсы против функций
Здравствуйте, D. Mon, Вы писали:


DM>А оно есть в GHC из коробки? А не в чьей-то частной ветке?


Из коробки.
-qg ⟨gen⟩¶
Default
0

Since
6.12.1

Use parallel GC in generation ⟨gen⟩ and higher. Omitting ⟨gen⟩ turns off the parallel GC completely, reverting to sequential GC.

The default parallel GC settings are usually suitable for parallel programs (i.e. those using GHC.Conc.par, Strategies, or with multiple threads). However, it is sometimes beneficial to enable the parallel GC for a single-threaded sequential program too, especially if the program has a large amount of heap data and GC is a significant fraction of runtime. To use the parallel GC in a sequential program, enable the parallel runtime with a suitable -N ⟨x⟩ option, and additionally it might be beneficial to restrict parallel GC to the old generation with -qg1.