RFR: 7903750: TimeBudget (-tb) does not fulfill its promisses [v6]
Jiří Vaněk
jvanek at openjdk.org
Mon Mar 24 18:18:55 UTC 2025
On Mon, 24 Mar 2025 17:57:59 GMT, Galder Zamarreño <galder at openjdk.org> wrote:
>> true. I had adjusted it so it is `+ WARNING: ...` nad same for `FATAL`:
>>
>> + FATAL: - your tests will never finish as expected. They will run much longer
>> | For 169716 with concurrency factor of 1 You have requested/been given time budget of: 01:00:00
>> | That is ~21 ms per test
>> + +++ However the real time will be converging to: 5d+21:25:48 +++
>> | You can play with internal properties name(value/eta):
>> | jcstress.timeBudget.defaultPerTestMs(3000ms/5d+21:25:48)
>> | jcstress.timeBudget.minTimeMs(30ms/01:24:51)
>> | jcstress.timeBudget.maxTimeMs(60000ms/117d+20:36:00)
>> | Which are setting up the exact times the individual tests are trying to converage to.
>> + Use with caution! Test run below 100ms is moreover jeopardize the purpose. And will not squeeze the time as you wish.
>>
>>
>> I had kept the leading `+` so it continue to look aligned and is clea where it starts and ends. If you wish me to remove also leading `+ ` then a slightly different approach would need to be taken.
>
> Hmmm I see, that might be ok for multi-line comments, but if I were you I would look for other multi-line outputs and see what is done there. In JMH multi line comments are just printed as they are, e.g. https://github.com/openjdk/jmh/blob/master/jmh-core/src/main/java/org/openjdk/jmh/runner/format/TextReportFormat.java#L237
Not much similar things to be here. I Wanted to make clear that that lines are bound together, as that paragraph needs some formatting to be readable. I had modified it so it is without it, aligned with original time budget :
Time budget:
Initial completion estimate: 01:60:3600 left; at Mon, 2025-03-24 20:11:16
Initial test time: 30 ms
FATAL: your tests will never finish as expected. They will run much longer
For 168708 with concurrency factor of 1 You have requested/been given time budget of: 01:60:3600
That is ~21 ms per test
However the real time will be converging to: 5d+20:1235:74124 +++
You can play with internal properties name(value/eta):
jcstress.timeBudget.defaultPerTestMs(3000ms/5d+20:1235:74124)
jcstress.timeBudget.minTimeMs(30ms/01:84:5061)
jcstress.timeBudget.maxTimeMs(60000ms/117d+03:228:13680)
Which are setting up the exact times the individual tests are trying to converage to.
Use with caution! Test run below 100ms is moreover jeopardize the purpose. And will not squeeze the time as you wish.
Attached the non-interactive output stream.
Printing the progress line at most every 15000 milliseconds.
wdyt? I like the orogonal "table like" slightly more.
-------------
PR Review Comment: https://git.openjdk.org/jcstress/pull/161#discussion_r2010703457
More information about the jcstress-dev
mailing list