Насколько хорошо оптимизирован параллельный сбор GC для параллельных вычислений Java для многопоточных сред? Я написал многопоточный Jython-код, который большую часть времени тратит на вызовы библиотек Java. В зависимости от того, с какими параметрами я запускаю программу, библиотека вызывает либо тонны распределений под капотом, либо практически нет. Когда я использую параметры, которые требуют тонны распределений кучи, я не могу получить код для масштабирования за последние 6 ядер. Когда я использую параметры, которые не требуют большого количества распределений, он масштабируется как минимум до 20. Насколько вероятно, что это связано с узким местом GC, учитывая, что я использую запас Sun VM, параллельный GC и Jython как мой язык клей?Java GC Threading Bottleneck на практике?
Редактировать: Чтобы уточнить, я не обязательно буду думать о вещах, которые очевидны для ветеранов Java, потому что я почти никогда не использую языки Java/JVM. Я выполняю большинство своих программ в D и флагманскую реализацию CPython Python. Я использую JVM и Jython для небольшого одноразового проекта b/c Мне нужен доступ к библиотеке Java.
Какие у вас варианты? Это похоже на проблему ThreadPool, а не на проблему с GC. –
@Thierry: параметры специфичны для моей программы, с точки зрения вызова функций библиотеки. Я даже не использую ThreadPool. – dsimcha