Are v8 strings handled similar to ropes by any chance? That would explain
the high flattening cost.

On Fri, Oct 14, 2011 at 4:18 PM, ajg <[email protected]> wrote:

>
> Ok now it's interesting.
> If I build string like this
>
>    var large = ".." // large string inside say 1k
>    var s = large;
>     while ( s.length < 850 * 1024 ){
>         s += large;
>    }
>
> Then when I call utf8value or asciivalue on it it's instantaneous.
> So this would point to the fact that small strings like "x" starts of
> a wchar, while long ones are optimized into ascii for storage.
>
> On Oct 14, 2:15 pm, ajg <[email protected]> wrote:
> > that is not the issue.
> > The building of it is actually very fast.
> > But once I have the result s string, conversion to either utf8 or
> > ascii takes forever in C++.
> >
> > On Oct 14, 2:08 pm, Stephan Beal <[email protected]> wrote:
> >
> >
> >
> >
> >
> >
> >
> > > On Fri, Oct 14, 2011 at 11:01 PM, ajg <[email protected]> wrote:
> > > >    while ( s.length < 850 * 1024 ){
> > > >        s += "x";
> > > >    }
> >
> > > > If you call utf8value or asciivalue on this string it takes about
> 2-3s
> > > > to complete.
> >
> > > You do understand that this allocates a NEW string on each
> concatenation,
> > > right? JS strings are immutable - you cannot change them in-place.
> Changing
> > > one creates a new copy.
> >
> > > --
> > > ----- stephan bealhttp://wanderinghorse.net/home/stephan/
>
> --
> v8-users mailing list
> [email protected]
> http://groups.google.com/group/v8-users
>

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to