One data point: the CL
<https://chromium-review.googlesource.com/c/chromium/src/+/3252774> that
replaces blink::IntPoint (declared with the macro) with gfx::Point was
landed 2 days ago, and I haven't received any performance bug yet. Perhaps
we don't use Vector<IntPoint> in performance critical code.

Will try std::is_trivial before converting other types.

On Thu, Nov 4, 2021 at 10:19 AM Daniel Bratell <bratel...@gmail.com> wrote:

> (see inline)
> On 2021-11-03 12:15, Kentaro Hara wrote:
>
> The VectorTraits<T>::kCan{Copy,Move,Fill,Compare}... fields are used for
>> all Vector<T>s though, no? This particular macro doesn't appear to
>> explicitly define/override any Oilpan-related fields AFAICS.
>
>
> You're right -- thanks for pointing it out :)
>
> a) The macros work as a performance optimization for all Vector<T>s. I
> have no data about the performance numbers though.
>
> The traits have a big effect on micro-benchmarks but it's always hard to
> map that to user observable performance.
>
> Furthermore, is it possible to replace the macros with use of standard C++
> traits such as std::is_trivial
> <http://www.cplusplus.com/reference/type_traits/is_trivial/>? It would
> require auditing current types, and possibly modifying them, but that is
> something that has to be done anyway before a complete type merge between
> Blink and
>
> /Daniel
>
>
> b) Some of the macros are mandatory to make HeapVector<T> work correctly
> (e.g., see static_assert here
> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h;l=81?q=kCanClearUnusedSlotsWithMemset&ss=chromium%2Fchromium%2Fsrc:third_party%2Fblink%2Frenderer%2Fplatform%2F>
> ).
>
> b) does not apply to the geometry types in question. Regarding a), maybe
> can we just measure performance using benchmarks and see if dropping the
> macros causes performance regressions? (I hope not.)
>
>
> On Wed, Nov 3, 2021 at 7:19 PM Fredrik Söderquist <f...@opera.com> wrote:
>
>> On Wed, Nov 3, 2021 at 12:29 AM Kentaro Hara <hara...@chromium.org>
>> wrote:
>>
>>> The macro matters only for objects stored in HeapVector<T> (i.e.
>>> Oilpan). So you don't need to export the macro outside Blink :)
>>>
>>
>> The VectorTraits<T>::kCan{Copy,Move,Fill,Compare}... fields are used for
>> all Vector<T>s though, no? This particular macro doesn't appear to
>> explicitly define/override any Oilpan-related fields AFAICS.
>>
>>
>> /fs
>>
>>
>>>
>>>
>>> 2021年11月3日(水) 8:04 Xianzhu Wang <wangxian...@chromium.org>:
>>>
>>>> Hi,
>>>>
>>>> I'm migrating blink to use gfx geometry types, and noticed
>>>> that WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS is applied to blink
>>>> geometry types. It seems to optimize performance of Vector<Type>.
>>>>
>>>> I have the following questions:
>>>>
>>>> 1. For a type defined out of blink, how do we force users to include a
>>>> header delaring WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS(Type)?
>>>> I'm thinking of putting it in vector_traits.h
>>>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/vector_traits.h>,
>>>> but I would like to know if there are better ways.
>>>>
>>>> 2. Do we have data showing the performance difference with and without
>>>> WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS?
>>>>
>>>> Thanks,
>>>> Xianzhu
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "blink-dev" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to blink-dev+unsubscr...@chromium.org.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADBxriepZahOVJfzQseAyFfkjUPUgLWovXrKUYH54UGY6K2mEw%40mail.gmail.com
>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADBxriepZahOVJfzQseAyFfkjUPUgLWovXrKUYH54UGY6K2mEw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "blink-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to blink-dev+unsubscr...@chromium.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABg10jxn-cipEGf%2BU04WVa3UNqLmqmFcX55dWCPy_KK6huAe3A%40mail.gmail.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABg10jxn-cipEGf%2BU04WVa3UNqLmqmFcX55dWCPy_KK6huAe3A%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>
>
> --
> Kentaro Hara, Tokyo
> --
> You received this message because you are subscribed to the Google Groups
> "blink-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to blink-dev+unsubscr...@chromium.org.
> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABg10jxmhADNpdOCAnq_VbH-R%2BVbhJc%3DvS2CAW4LQv10OukU6w%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABg10jxmhADNpdOCAnq_VbH-R%2BVbhJc%3DvS2CAW4LQv10OukU6w%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADBxrif2LhqQjStLUUCCn_VhbCr9kEu4aoBtUf41qtamPRpPQw%40mail.gmail.com.

Reply via email to