All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
To: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	"open list:bochs" <qemu-block@nongnu.org>,
	Stefan Hajnoczi <stefanha@gmail.com>,
	QEMU Developers <qemu-devel@nongnu.org>,
	Max Reitz <mreitz@redhat.com>, Cleber Rosa <crosa@redhat.com>,
	"Denis V. Lunev" <den@openvz.org>, John Snow <jsnow@redhat.com>
Subject: Re: [PATCH v3 1/4] scripts/simplebench: add simplebench.py
Date: Tue, 17 Mar 2020 18:01:00 +0300	[thread overview]
Message-ID: <3e1701d8-9068-cbb1-34e8-1f88946dbfcc@virtuozzo.com> (raw)
In-Reply-To: <CAL1e-=gcf5DY_mCFoQ-0pVJp7jG6w5eQimk7+W5=MTgZ9Emb-Q@mail.gmail.com>

17.03.2020 17:40, Aleksandar Markovic wrote:
> On Mon, Mar 2, 2020 at 10:05 PM Aleksandar Markovic
> <aleksandar.m.mail@gmail.com> wrote:
>>
>>
>>
>>
>>>>> +
>>>>> +
>>>>> +def ascii_one(result):
>>>>> +    """Return ASCII representation of bench_one() returned dict."""
>>>>> +    if 'average' in result:
>>>>> +        s = '{:.2f} +- {:.2f}'.format(result['average'], result['delta'])
>>>>> +        if 'n-failed' in result:
>>>>> +            s += '\n({} failed)'.format(result['n-failed'])
>>>>> +        return s
>>>>> +    else:
>>>>> +        return 'FAILED'
>>>>
>>>> I think it would be visually clearer if "+-" was printed without any
>>>> space between it and the following number, using something
>>>> like this:
>>>>
>>>> s = ' {:.2f} +-{:.2f}'.format(result['average'], result['delta'])
>>>>
>>>> The resulting table would look like:
>>>>
>>>> ----------  -------------  -------------  -------------
>>>>               backup-1       backup-2       mirror
>>>> ssd -> ssd   0.43 +-0.00    4.48 +-0.06    4.38 +-0.02
>>>> ssd -> hdd   10.60 +-0.08   10.69 +-0.18   10.57 +-0.05
>>>> ssd -> nbd   33.81 +-0.37   10.67 +-0.17   10.07 +-0.07
>>>> ----------  -------------  -------------  -------------
>>>>
>>>> But, this is just cosmetics.
>>>>
>>>> With or without the suggestion above:
>>>>
>>>> Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com>
>>>
>>> Thanks for reviewing!
>>>
>>> Agree with this change, but I don't think it worth to resend the series for this one space)
>>> Hope it may be applied with pull request..
>>>
>>
>> I am an occasional Python programmer, and I felt comfortable
>> reviewing your series, but I am not a maintainer of this directory,
>> and I believe Eduardo or Cleber or other more active Python
>> contributors would be better choice for selecting this series in
>> their pull request.
>>
>> So, I can't send this series to Peter - Cleber, Eduardo, please
>> see to it.
>>
> 
> Eduardo, can you perhaps consider this series for selecting
> into your pull request?

I saw, he has taken the patches into python-next in:
https://github.com/ehabkost/qemu/commits/python-next

Hope, pull request will come)


> 
> Thanks,
> Aleksandar
> 
>> Yours,
>> Aleksandar
>>
>>>>
>>>>> +
>>>>> +
>>>>> +def bench(test_func, test_envs, test_cases, *args, **vargs):
>>>>> +    """Fill benchmark table
>>>>> +
>>>>> +    test_func -- benchmarking function, see bench_one for description
>>>>> +    test_envs -- list of test environments, see bench_one
>>>>> +    test_cases -- list of test cases, see bench_one
>>>>> +    args, vargs -- additional arguments for bench_one
>>>>> +
>>>>> +    Returns dict with the following fields:
>>>>> +        'envs':  test_envs
>>>>> +        'cases': test_cases
>>>>> +        'tab':   filled 2D array, where cell [i][j] is bench_one result for
>>>>> +                 test_cases[i] for test_envs[j] (i.e., rows are test cases and
>>>>> +                 columns are test environments)
>>>>> +    """
>>>>> +    tab = {}
>>>>> +    results = {
>>>>> +        'envs': test_envs,
>>>>> +        'cases': test_cases,
>>>>> +        'tab': tab
>>>>> +    }
>>>>> +    n = 1
>>>>> +    n_tests = len(test_envs) * len(test_cases)
>>>>> +    for env in test_envs:
>>>>> +        for case in test_cases:
>>>>> +            print('Testing {}/{}: {} :: {}'.format(n, n_tests,
>>>>> +                                                   env['id'], case['id']))
>>>>> +            if case['id'] not in tab:
>>>>> +                tab[case['id']] = {}
>>>>> +            tab[case['id']][env['id']] = bench_one(test_func, env, case,
>>>>> +                                                   *args, **vargs)
>>>>> +            n += 1
>>>>> +
>>>>> +    print('Done')
>>>>> +    return results
>>>>> +
>>>>> +
>>>>> +def ascii(results):
>>>>> +    """Return ASCII representation of bench() returned dict."""
>>>>> +    from tabulate import tabulate
>>>>> +
>>>>> +    tab = [[""] + [c['id'] for c in results['envs']]]
>>>>> +    for case in results['cases']:
>>>>> +        row = [case['id']]
>>>>> +        for env in results['envs']:
>>>>> +            row.append(ascii_one(results['tab'][case['id']][env['id']]))
>>>>> +        tab.append(row)
>>>>> +
>>>>> +    return tabulate(tab)
>>>>> --
>>>>> 2.21.0
>>>>>
>>>>>
>>>
>>>
>>> --
>>> Best regards,
>>> Vladimir


-- 
Best regards,
Vladimir


  reply	other threads:[~2020-03-17 15:02 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-28  7:19 [PATCH v3 0/4] benchmark util Vladimir Sementsov-Ogievskiy
2020-02-28  7:19 ` [PATCH v3 1/4] scripts/simplebench: add simplebench.py Vladimir Sementsov-Ogievskiy
2020-02-28 13:03   ` Aleksandar Markovic
2020-02-28 13:48     ` Vladimir Sementsov-Ogievskiy
2020-03-02 21:05       ` Aleksandar Markovic
2020-03-17 14:40         ` Aleksandar Markovic
2020-03-17 15:01           ` Vladimir Sementsov-Ogievskiy [this message]
2020-02-28  7:19 ` [PATCH v3 2/4] scripts/simplebench: add qemu/bench_block_job.py Vladimir Sementsov-Ogievskiy
2020-02-28 13:04   ` Aleksandar Markovic
2020-02-28  7:19 ` [PATCH v3 3/4] scripts/simplebench: add example usage of simplebench Vladimir Sementsov-Ogievskiy
2020-02-28 13:27   ` Aleksandar Markovic
2020-02-28  7:19 ` [PATCH v3 4/4] MAINTAINERS: add simplebench Vladimir Sementsov-Ogievskiy
2020-02-28 13:27   ` Aleksandar Markovic

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3e1701d8-9068-cbb1-34e8-1f88946dbfcc@virtuozzo.com \
    --to=vsementsov@virtuozzo.com \
    --cc=aleksandar.m.mail@gmail.com \
    --cc=crosa@redhat.com \
    --cc=den@openvz.org \
    --cc=ehabkost@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.