среда, 29 ноября 2017 г., 15:09:31 UTC+3 пользователь Ben Noordhuis написал:
>
> On Tue, Nov 28, 2017 at 9:50 AM,  <[email protected] <javascript:>> 
> wrote: 
> > Hi. 
> > 
> > I have big unordered_map in C++, like 
> > 
> > std::unordered_map<uint32_t, MyObject>; 
> > 
> > It contains more than 10 million elements, and i need about 10 thousand 
> hits 
> > to map from js. What is the most productive way to pass it to JS? 
> > 
> > 1) I can add each item to v8 variable: 
> > 
> > v8::Local<v8::Object> map; 
> > map.Set(context, key, value); 
> > 
> > But how productive it will be? And what type of v8::Object i must use? 
> > (v8::Object or v8::Map)? 
> > 
> > 2) I can use NamedProperty, but each access to map from js will call my 
> c++ 
> > func. It's now slow? 
> > 
> > And what kind of named properties should I must use in this variant? I 
> see 
> > at least (SetAccessor, SetNamedPropertyHandler, SetHandler from 
> > v8::ObjectTemplate) and (SetAccessor, SetAccessorProperty, 
> > SetNativeDataProperty from v8::Object) 
>
> I would recommend to benchmark both approaches and see for yourself. 
>
> Intuitively, I would say that an accessor is going to be faster 
> because the number of lookups is much smaller than the number of keys, 
> but performance characteristics are frequently counter-intuitive. 
>


Thanks! But what type of access do you recommend using? There are a lot of 
them, and unfortunately, I do not really understand what exactly they are 
different about 

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to