Jump to content
php.lv forumi

Kaarteejais stulbais jaut.


rudzis

Recommended Posts

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 by rudzis
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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...
Link to comment
Share on other sites

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 by blackhalt
Link to comment
Share on other sites

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))

Link to comment
Share on other sites

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 ::: :)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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()

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 by blackhalt
Link to comment
Share on other sites

×
×
  • Create New...