(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/865a5931-63a8-a072-25c0-fa1863d0b448%40gmail.com.