rudzis Posted February 7, 2005 Report Posted February 7, 2005 (edited) Atkal manas spožās idejas... Kaut kur diraa/ ir faili 1.txt; 2.txt ...... utt., un ir zinaams failu skaits (lielaakais cipars). Vajag sakskaitiit visu failu visas rindinjas (rindas explodeejas peec ":::" ) :) Got ideas? ;) Edited February 7, 2005 by rudzis
tamster Posted February 7, 2005 Report Posted February 7, 2005 ciklā ver vaļā failus, explodē, taisi $total+=count($masivs);... nav diez cik labi performances ziņā, bet strādāt strādās :)
rudzis Posted February 7, 2005 Author Report Posted February 7, 2005 Hmmz... Kāds nevēlētos uzrakstīt sampli? Man kaut kas nesanāca... :/
Roze Posted February 7, 2005 Report Posted February 7, 2005 Vispār jau ar kodu rakstīšanu jānodrabojas pašam bet nu: for($i=1;$i<=$maximalais;$i++) { $cnt += count(explode(':::',file_get_contents('/some/path/'.$i.'.txt'))); } echo 'Rindu skaits: '.$cnt; protams korektumam var itkaa likt arii if(file_exists(... )), bet nu ja ir pārliecība ka faili vienmēr būs tad teorētiski nevajag.
bubu Posted February 7, 2005 Report Posted February 7, 2005 Hmmz... Kāds nevēlētos uzrakstīt sampli? Man kaut kas nesanāca... :/ 13478[/snapback] Varēji jau parādīt savu kodu, kas uzkodējās, lai arī ar visiem bugiem. Tad mēs varētu parādīt, kur kļūdījies, tā tu vairāk iemācītos, jo redzētu, kam jāpievērš uzmanība. A nevis tikai gatavu kodu prasīt...
blackhalt Posted February 8, 2005 Report Posted February 8, 2005 (edited) Atkal manas spožās idejas... Kaut kur diraa/ ir faili 1.txt; 2.txt ...... utt., un ir zinaams failu skaits (lielaakais cipars). Vajag sakskaitiit visu failu visas rindinjas (rindas explodeejas peec ":::" ) :) Got ideas? ;) 13471[/snapback] faila rindas var saskaitīt ar sizeof(); , tas ja nav tur dafiga nevaidzīgu \n tb ja katrs ieraksts jaunā rindā ira ;) Edited February 8, 2005 by blackhalt
bubu Posted February 8, 2005 Report Posted February 8, 2005 blackhalt: ar ko count() atšķirās no sizeof() :)) Un takš manliekās tika minēts, ka jauna rinda tiek identificēta ar :::
Venom Posted February 8, 2005 Report Posted February 8, 2005 NB: agrāk vienmēr lietoju sizeof(), jo count() bija viņam aliass performances labad, tagad reku-šeku otrādi. Bet izmantot gan vienu gan otru vienkāršai faila rindu skaitīšanai var tikai tad, kad viss fails sastāv vienīgi no \n zīmēm. bet var uz count(@file($file))
blackhalt Posted February 8, 2005 Report Posted February 8, 2005 blackhalt: ar ko count() atšķirās no sizeof() :)) Un takš manliekās tika minēts, ka jauna rinda tiek identificēta ar ::: 13498[/snapback] sizeof ir ātrāks ;) nekur tur nav rakstīts par jaunu rindu[newline] :P moš tur vis vienā rindā explodējas ar ::: :)
bubu Posted February 8, 2005 Report Posted February 8, 2005 (edited) Nu blackhalt samuldējies gan! Iz http://lv.php.net/sizeof : sizeof -- Alias of count() Edited February 8, 2005 by bubu
blackhalt Posted February 8, 2005 Report Posted February 8, 2005 Nu blackhalt samuldējies gan! Iz http://lv.php.net/sizeof :sizeof -- Alias of count() 13503[/snapback] Пусть тесты будут иметь погрешности... Но результат один - count() заметно отстает по скорости от sizeof()! Хм, я бы к записи в мануале сделал приписку: "The sizeof() function is an alias for count(), but последний сильно тормозит!" PHP - Оптимизация программ на PHP
Venom Posted February 8, 2005 Report Posted February 8, 2005 nevajag ticēt 92 vai kura tur gada testiem! $ary=array(); $tmp=1001; $start=array_sum(explode(' ',microtime())); while(--$tmp) { $ary[]=$tmp; sizeof($ary); } echo '<br />'.(array_sum(explode(' ',microtime()))-$start); $ary=array(); $tmp=1001; $start=array_sum(explode(' ',microtime())); while(--$tmp) { $ary[]=$tmp; count($ary); } echo '<br />'.(array_sum(explode(' ',microtime()))-$start); 0.0023410320281982 0.0014579296112061 kā jau teicu - kādu laiku lietoju sizeof, jo manuālī count() bija sizeof() aliass, ar 4.x kuru tur versiju php izstrādātāji pagājuši pretī un samainījuši tos otrādi, jo sapratuši, ka count() jauniņiem vieglāk atrodams manuālī par C++/Java pierasto terminu sizeof()
blackhalt Posted February 8, 2005 Report Posted February 8, 2005 nevajag ticēt 92 vai kura tur gada testiem!....cut... <?php $ary=array(); $tmp=5001; $start=array_sum(explode(' ',microtime())); while(--$tmp) { $ary[]=$tmp; count($ary); } echo '<br />'.(array_sum(explode(' ',microtime()))-$start); $ary=array(); $tmp=5001; $start=array_sum(explode(' ',microtime())); while(--$tmp) { $ary[]=$tmp; sizeof($ary); } echo '<br />'.(array_sum(explode(' ',microtime()))-$start); ?> 0.30639410018921 0.096214056015015 :D
blackhalt Posted February 8, 2005 Report Posted February 8, 2005 (edited) blabla palūr uzmanīgāk to Venom/manu skriptu! ;) samainīju skriptā vietām sizeof ar count ;) bet uz 100001 sizeof bija vienmērigāks bet bik lēnāks :/ laidu katru atsevišķā count.php un sizeof.php Edited February 8, 2005 by blackhalt
Recommended Posts