mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benjamin Bannier <benjamin.bann...@mesosphere.io>
Subject Re: Review Request 42762: Improved performance of 'roles::validate'.
Date Tue, 26 Jan 2016 17:30:48 GMT


> On Jan. 26, 2016, 3:14 a.m., Anand Mazumdar wrote:
> > LGTM. Puzzled me for a bit at why the temporary is being constructed (assuming the
correct `operator==` for `const char*` was being invoked) till I looked up here:
> > 
> > https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/basic_string.h#L2468
> > 
> > ```
> >  Determines the effective length rlen of the strings to compare as the smallest
of size() and the length of a string constructed from @a __s. 
> > ```

Maybe I am too dense, but I think this comment is misleading, see the impl https://github.com/gcc-mirror/gcc/blob/master/libstdc++-v3/include/bits/basic_string.tcc#L1390.
Nothing there seems to construct a temporary string. What could cause different performance
for `string` and `const char*` is that the length of a `const char*` might need to be calculated
at runtime (technically a compiler could use the known length of the literal to make this
a nop since this is all implemented in headers, https://code.woboq.org/gcc/include/c++/5.2.0/bits/char_traits.h.html#__gnu_cxx::char_traits::length).
The actual comparsion is just a `memcmp` (https://code.woboq.org/gcc/include/c++/5.2.0/bits/char_traits.h.html#__gnu_cxx::char_traits::length).


- Benjamin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/42762/#review116256
-----------------------------------------------------------


On Jan. 26, 2016, 1:10 a.m., Joris Van Remoortere wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/42762/
> -----------------------------------------------------------
> 
> (Updated Jan. 26, 2016, 1:10 a.m.)
> 
> 
> Review request for mesos and Michael Park.
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> This validation is used inside resource math which in turn is used
> heavily in the code base.
> The temporary string allocations caused a significant performance
> degradation in this critical path.
> 
> 
> Diffs
> -----
> 
>   src/common/roles.cpp 5be807018ff84174cf0cabb933f6828d458d3846 
> 
> Diff: https://reviews.apache.org/r/42762/diff/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Joris Van Remoortere
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message