qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 13/15] scripts/simplebench: improve view of ascii table


From: Max Reitz
Subject: Re: [PATCH v6 13/15] scripts/simplebench: improve view of ascii table
Date: Fri, 25 Sep 2020 11:31:19 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
> Introduce dynamic float precision and use percentage to show delta.
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
>  scripts/simplebench/simplebench.py | 26 +++++++++++++++++++++++++-
>  1 file changed, 25 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/simplebench/simplebench.py 
> b/scripts/simplebench/simplebench.py
> index 716d7fe9b2..56d3a91ea2 100644
> --- a/scripts/simplebench/simplebench.py
> +++ b/scripts/simplebench/simplebench.py
> @@ -79,10 +79,34 @@ def bench_one(test_func, test_env, test_case, count=5, 
> initial_run=True):
>      return result
>  
>  
> +def format_float(x):
> +    res = round(x)
> +    if res >= 100:
> +        return str(res)
> +
> +    res = f'{x:.1f}'
> +    if len(res) >= 4:
> +        return res
> +
> +    return f'{x:.2f}'

This itches me to ask for some log() calculation.

Like:

%.*f' % (math.ceil(math.log10(99.95 / x)), x)

(For three significant digits)

> +def format_percent(x):
> +    x *= 100
> +
> +    res = round(x)
> +    if res >= 10:
> +        return str(res)
> +
> +    return f'{x:.1f}' if res >= 1 else f'{x:.2f}'

Same here.  (Also, why not append a % sign in this function?)

>  def ascii_one(result):
>      """Return ASCII representation of bench_one() returned dict."""
>      if 'average' in result:
> -        s = '{:.2f} +- {:.2f}'.format(result['average'], result['delta'])
> +        avg = result['average']
> +        delta_pr = result['delta'] / avg
> +        s = f'{format_float(avg)}±{format_percent(delta_pr)}%'

Pre-existing, but isn’t the ± range generally assumed to be the standard
deviation?

Max

>          if 'n-failed' in result:
>              s += '\n({} failed)'.format(result['n-failed'])
>          return s
> 


Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]