Tarantool development patches archive
 help / color / mirror / Atom feed
From: Leonid Vasiliev <lvasiliev@tarantool.org>
To: Sergey Nikiforov <void@tarantool.org>,
	tarantool-patches@dev.tarantool.org
Cc: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
Subject: Re: [Tarantool-patches] [PATCH v3 2/2] base64: improve decoder performance
Date: Fri, 25 Dec 2020 16:10:02 +0300	[thread overview]
Message-ID: <99c1120f-a9ca-0098-ee7b-159e1974fd9b@tarantool.org> (raw)
In-Reply-To: <c0d7ed81-87d7-9f9a-e9e4-93240e74b41a@tarantool.org>

Hi!

On 25.12.2020 13:39, Sergey Nikiforov wrote:
> Hi!
> 
> On 24.12.2020 17:08, Leonid Vasiliev wrote:
>> Hi! Thank you for the patch.
>> AFAIU the status of the patch is follows:
>>
>>  > But I see we are not going anywhere here. You don't really need LGTM
>>  > from me on this patch, if you don't want to finish it. I am not
>>  > strictly against these changes, because *probably* they don't add new
>>  > bugs, and seem to be a tiny bit better for perf. I only don't like it
>>  > being not finished.
>>
>> I think the changes are ok, because they are good for perf (and we have
>> confirmation) and don't add degradation (our tests should guarantee
>> this).
>>
>> See some comments below:
>>
>> What about a benchmark. AFAIK A. Lyapunov propose saving all benchmarks
>> that we used. Did you have a conversation with him?
> 
> Yes, I had. "perf" in tarantool. Benchmark framework is not yet merged 
> (https://github.com/tarantool/tarantool/tree/i.kosarev/gh-5385-tiny-tuples-with-perf-test/perf) 
> so I plan to commit my microbenchmark a little later to avoid duplication.
> 

OK.

>> On 22.12.2020 13:41, Sergey Nikiforov wrote:
>>> Unnecessary checks were removed from internal loops.
>>> Benchmark shows that performance is now ~1.19 times higher
>>> (release build, Intel Core I7-9700K, only one thread).
>>> ---
>>>
>>> Branch: 
>>> https://github.com/tarantool/tarantool/tree/void234/gh-3069-fix-base64-memory-overrun-v3 
>>>
>>>
>>>   test/unit/base64.c      |  7 +++-
>>>   test/unit/base64.result | 84 +++++++++++++++++++++++++++--------------
>>>   third_party/base64.c    | 36 +++++++++++++-----
>>>   3 files changed, 89 insertions(+), 38 deletions(-)
>>>
>>
>> I left my questions about the test in the review of the previous patch.
> 
> Fixed.
> 
>>> diff --git a/third_party/base64.c b/third_party/base64.c
>>> index 3350a98ff..93442c04b 100644
>>> --- a/third_party/base64.c
>>> +++ b/third_party/base64.c
>>> @@ -257,10 +257,11 @@ base64_decode_block(const char *in_base64, int 
>>> in_len,
>>>           {
>>>       case step_a:
>>>               do {
>>> -                if (in_pos == in_end || out_pos >= out_end)
>>> +                if (in_pos >= in_end)
>>>                   {
>>>                       state->step = step_a;
>>> -                    state->result = curr_byte;
>>> +                    /* curr_byte is useless now */
>>> +                    /* state->result = curr_byte; */
>>
>> For multi-line comment, we use the following format:
>> /*
>>   * First line
>>   * Second line
>>   */
>>
>> And leaving a commented code is not best practice.
> 
> Fixed.

  reply	other threads:[~2020-12-25 13:10 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-22 10:41 [Tarantool-patches] [PATCH v3 0/2] base64: fix decoder, improve its performance Sergey Nikiforov
2020-12-22 10:41 ` [Tarantool-patches] [PATCH v3 1/2] base64: fix decoder output buffer overrun (reads) Sergey Nikiforov
2020-12-24 12:28   ` Leonid Vasiliev
2020-12-22 10:41 ` [Tarantool-patches] [PATCH v3 2/2] base64: improve decoder performance Sergey Nikiforov
2020-12-22 15:05   ` Vladislav Shpilevoy
2020-12-22 16:16     ` Sergey Nikiforov
2020-12-22 16:40       ` Vladislav Shpilevoy
2020-12-24 14:08   ` Leonid Vasiliev
2020-12-25 10:39     ` Sergey Nikiforov
2020-12-25 13:10       ` Leonid Vasiliev [this message]
2020-12-24 14:14 Leonid Vasiliev

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=99c1120f-a9ca-0098-ee7b-159e1974fd9b@tarantool.org \
    --to=lvasiliev@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=v.shpilevoy@tarantool.org \
    --cc=void@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v3 2/2] base64: improve decoder performance' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox