Hi Keith,
Yes, it makes sense to add QStringRef::toInt/Float/Double. The entire
point of QStringRef was to make things faster and having those apis
will definitely be an improvement.

Girish

On Wed, Jun 13, 2012 at 12:24 PM, Keith Gardner
<kgard...@zebraimaging.com> wrote:
> Sorry to backtrack this thread, but I have some performance information.  
> Just FYI, I haven't made any code changes to Qt, yet.
>
> To give some background information, I am parsing a single xml file with 
> 88,704 floating point values using the QXmlStreamReader.  I am running in 
> Windows 7 x64 and am using an SSD to store the file.  My compiler is Visual 
> Studio 2010 with a Win32 configuration.
>
> I would take the QStringRef for the argument, convert it to a string using 
> the toString() function and then use toFloat().
>
>        This method would parse the entire document in 608 milliseconds in 
> release mode.
>                stringRef.toString().toFloat()
>        Changing that code to use wcstod on the QStringRef resulted in parsing 
> the document in 467 millesconds.
>                wcstod((const wchar_t*)stringref.unicode(),0);
>
> In debug mode, this goes from 2814 milliseconds down to 1850 milliseconds.
>
> I would say that there is a big payout with changing what we currently have.
>
> Thanks,
> Keith
>
> -----Original Message-----
> From: Girish Ramakrishnan [mailto:gir...@forwardbias.in]
> Sent: Monday, June 11, 2012 4:55 PM
> To: Keith Gardner
> Cc: development@qt-project.org
> Subject: Re: [Development] QStringRef conversion functions
>
> Hi,
>
> On Mon, Jun 11, 2012 at 11:38 AM, Keith Gardner
> <kgard...@zebraimaging.com> wrote:
>> I was wondering if there would be a possibility of getting some of the
>> conversion functions that are in QString implemented in QStringRef (toInt,
>> toFloat, etc...).  The reasoning behind this is that I am using the
>> QXMLStreamReader to parse an XML file with over 88,704 floating point
>> values.  I am trying to improve the speed at which the file is parsed and I
>> believe one of the bottlenecks is taking an attribute of QStringRef and
>> copying its data into a QString in order to convert to a float.  I would
>> prefer that the copy never happen but that would require some more
>> intelligence be added into the QStringRef class.
>>
>
> I am tempted to say it's 5.1 material but it would be nice to see how
> much gains you are getting out of these new apis and how intrusive the
> new code is. Can you push your change to gerrit ?
>
> Thanks,
> Girish
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to