Hi Andrei, Thanks for your reply. Yeah, obviously it'll still be slower than with an already-binary string. :-) But I figured it's better than before, until something better comes along...
Unless there were other plans to rewrite it, is there a way to easily (for me! :-)) have it do all the conversion? I've been thinking about the different string-to-number functions (will send a separate e-mail)... Is there a reason the regular zend_strtod() code is so complicated? zend_string_to_double(), for example, is really simple (and works the same I assume, except for not handling negatives or leading whitespace). Can zend_u_strtod() be implemented with the same methods zend_string_to_double() uses? Thanks, Matt ----- Original Message ----- From: "Andrei Zmievski" Sent: Tuesday, August 01, 2006 > Yes. With your patch applied, the numeric unicode string to double > conversion is about 100% slower than from binary strings. If this is > acceptable we can commit the patch. Otherwise, we should port > zend_strtod() to deal with unicode strings directly. > > -Andrei > > On Jul 31, 2006, at 1:58 AM, Matt W wrote: > > > Hi all, > > > > As I was working on upgrading the dec[bin|hex|oct] functions to convert > > large doubles, I noticed how much slower things were when converting > > Unicode > > strings to double. I found that converting the whole thing to string > > and > > using regular zend_strtod() was much faster. Then I decided to try > > modifying the u_strtod() function to do the same, but just on the > > relevant > > numeric portion. > > > > I don't know if I did everything right, but it seems to work fine with > > my > > limited testing. (I was working from zend_u_strtol() and > > zval_unicode_to_string_ex(). :-)) The function is now about *8 times* > > faster, and nearly 20 times faster on a non-numeric string! (I'm on > > Windows.) > > > > diff: http://realplain.com/php/zend_u_strtod.diff > > > > Is this something that can be used? > > > > > > Thanks, > > Matt -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php