RE: [PHP] Why is the php loop, 'for()', so slow????

From: Date: Thu, 20 Nov 2003 15:01:41 +0000
Subject: RE: [PHP] Why is the php loop, 'for()', so slow????
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-170421@lists.php.net to get a copy of this message
As a substitute for substr, you might want to give a regex a chance.. have no clue if it's faster, but it might just be. /^.{2}(.{0,8})/ would be your regex if you want to start at offset THREE and take out a MAX EIGHT char string (remove the 0 and get ONLY EIGHT char strings). Not sure if PHP sets $1, $2, .. vars, else give the optional third "Matches" param to preg_match(); Wouter > -----Oorspronkelijk bericht----- > Van: Scott Fletcher [mailto:scott@abcoa.com] > Verzonden: donderdag 20 november 2003 15:44 > Aan: php-general@lists.php.net > Onderwerp: Re: [PHP] Why is the php loop, 'for()', so slow???? > > > Well, should have make one long string to the $res_str variable a lot > shorter. :-) > > It turned out that the for() loop isn't the slow part when you mentioned > about substr(). I tried out the while() loop and it is pretty > much the same > when the loop take over 5 minutes. So, it now seem to have to do with > substr() function. Yea, I'm not sure what hte best substitute of it would > be. In other branches off of this posting, someone said about using the > strpos(). I'm willing to give this a try but I have problem with this > because I have two "<!CDATA[[***]]>" tags in it and I want to use > both, not > just first one. > > Scott > > "Chris W. Parker" <cparker@swatgear.com> wrote in message > > news:001BD19C96E6E64E8750D72C2EA0ECEE4477E3@ati-ex-01.ati.local... > Scott Fletcher <mailto:scott@abcoa.com> > on Wednesday, November 19, 2003 1:12 PM said: > > > function CBC_XML_BreakUp(&$strResponse_XML, &$strResponse_HTML) > > > > { > > [snip] > > Wow I didn't think you were going to post your whole program. :0 > > 1. Are you sure the for() loop is the slow part? > > 2. As someone already suggested, calculating the sizeof() outside of the > loop should help a lot. Another enhancement is changing your for() to > while(). (This is a small enhancement but makes a bigger difference as > your iterations increase.) > > REGULAR for() loop construct: > > $iMax = 99; > > for($iCnt = 0; $iCnt < $iMax; $iCnt++) > { > } > > OPTIMIZED: > > $iMax = 99; > $iCnt = -1; > > while(++$iCnt < $iMax) > { > } > > Like I said it's only slightly faster, but might make a difference > depending on your number of iterations. > > 3. I think what may be slowing you down is your substr() calls. Maybe > there is a substitute function that is faster? (I don't have any ideas > unfortunately.) > > > Let us know if you figure something out. > > HTH, > Chris. > -- > Don't like reformatting your Outlook replies? Now there's relief! > http://home.in.tum.de/~jain/software/outlook-quotefix/ > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php

« previous php.general (#170421) next »