Size: a a a

2020 June 16

IO

Iaroslav Orlov in pro.jvm
Dmitry Zvorygin
ALOAD    probearray
xPUSH    probeid
ICONST_1
BASTORE
а это из какого класса?
источник

DZ

Dmitry Zvorygin in pro.jvm
Alexandr Emelyanov
и? они пишут туда true при прохождении метки?
да
источник

AE

Alexandr Emelyanov in pro.jvm
тогда какая разница в какое количество потоков записать true в массив?
источник

DZ

Dmitry Zvorygin in pro.jvm
я к тому что записи из некоторых потоков могут быть не увидены jacoco
источник

AE

Alexandr Emelyanov in pro.jvm
на каком основании?
источник

DZ

Dmitry Zvorygin in pro.jvm
ну как я понимаю на основании того, что JMM этого не гарантирует
источник

AE

Alexandr Emelyanov in pro.jvm
ну призывай Алексея :)
источник

AE

Alexandr Emelyanov in pro.jvm
Dmitry Zvorygin
ну как я понимаю на основании того, что JMM этого не гарантирует
у меня вопрос, а у тебя реально тесты гоняются с XX потоками в каждом?
источник

DZ

Dmitry Zvorygin in pro.jvm
Alexandr Emelyanov
у меня вопрос, а у тебя реально тесты гоняются с XX потоками в каждом?
в данном случае хочется собрать coverage интеграционного теста - вебсервер, куча потоков, все дела - запустить с JaCoCo, прогнать интеграционные тесты, и посмотреть какие части были потроганы
источник

DZ

Dmitry Zvorygin in pro.jvm
так что да - потоков много (
источник

DZ

Dmitry Zvorygin in pro.jvm
Dmitry Zvorygin
Пришлось сегодня посмотреть как JaCoCo инструментирует байткод - "https://www.jacoco.org/jacoco/trunk/doc/flow.html", и как я понимаю они не используют синхронизацию чтобы всё было быстро. Я правильно понимаю что в теории из-за отсутствия синхронизации, JaCoCo может не показать некоторые строчки как выполненные, хотя на самом деле они "выполнялись". Как вообще происходит "запись" в массивы boolean[] из нескольких потоков - всякие там барьеры и т.д. Стоит ли призывать Shipilёва?
@shipilev, приди!
источник

AE

Alexandr Emelyanov in pro.jvm
ну я думаю что jacoco писали для юнит тестов :) можешь сходить к ним issues)
источник

AE

Alexandr Emelyanov in pro.jvm
просто если все обвешать синхронизациями и волотайлом - скорости выполнения не прибавит
источник

DZ

Dmitry Zvorygin in pro.jvm
Alexandr Emelyanov
просто если все обвешать синхронизациями и волотайлом - скорости выполнения не прибавит
полностью согласен
источник

DZ

Dmitry Zvorygin in pro.jvm
Если бы jacoco написали бы что они single-threaded вопросов бы не было
источник

DZ

Dmitry Zvorygin in pro.jvm
но вот тут - https://www.eclemma.org/jacoco/trunk/doc/flow.html
они пишут - "Note that this probe code is thread safe, does not modify the operand stack or modify local variables and is also thread safe."
источник

DZ

Dmitry Zvorygin in pro.jvm
источник

DZ

Dmitry Zvorygin in pro.jvm
И вот тут - https://jira.atlassian.com/browse/CLOV-418 и закрыто как "Won't fix"...
источник

AE

Alexandr Emelyanov in pro.jvm
Dmitry Zvorygin
И вот тут - https://jira.atlassian.com/browse/CLOV-418 и закрыто как "Won't fix"...
это про запуск тестов параллельно. там скорее будет несколько инстансов jvm
источник

DZ

Dmitry Zvorygin in pro.jvm
Alexandr Emelyanov
это про запуск тестов параллельно. там скорее будет несколько инстансов jvm
Судя по переписке в баге - там именно многопоточность, раз говорят о threadlocal итд
источник