phpbar.de logo

Mailinglisten-Archive

[php] Abbruch ohne Error, wieso das denn ...

[php] Abbruch ohne Error, wieso das denn ...

Norbert Pfeiffer php_(at)_phpcenter.de
Tue, 10 Sep 2002 23:34:14 +0200


Hi Arnold und Andre,

da hilft auch kein echo oder exit ... :-((

Hier mal die Ausgaben vom Prompt und danach etwas Code,
damit die Glaskugel wieder auf Touren kommt:


\extra\work\rename\comp>php -q work.php
START:                      10.09.2002 - 22:41:30
A:          115 files -      45,231 ms - 22:41:30
B:          112 files -      38,178 ms - 22:41:30
C:            6 files - copy A to B
              0 files - copy B to A
            112 files -   identisch
            118 files -       4,001 ms - 22:41:30

\extra\work\rename\comp>php -q work.php
START:                      10.09.2002 - 22:43:58
A:          782 files -     345,272 ms - 22:43:58
B:          782 files -     367,623 ms - 22:43:59
C:            0 files - copy A to B
              0 files - copy B to A
            782 files -   identisch
            782 files -     185,714 ms - 22:43:59

\extra\work\rename\comp>php -q work.php
START:                      10.09.2002 - 22:45:31
A:        1.314 files -     754,123 ms - 22:45:31
B:        1.314 files -     538,573 ms - 22:45:32
C:            0 files - copy A to B
              0 files - copy B to A
          1.314 files -   identisch
          1.314 files -   1.382,385 ms - 22:45:33

\extra\work\rename\comp>php -q work.php
START:                      10.09.2002 - 22:46:57
A:       11.199 files -   2.801,297 ms - 22:46:59
B:       11.199 files -   2.931,949 ms - 22:47:02
C:            0 files - copy A to B
              0 files - copy B to A
         11.199 files -   identisch
         11.199 files - 220.858,485 ms - 22:50:43 <-- [1]

\extra\work\rename\comp> <------------------------- [2]

von [1] nach [2] vergingen ueber drei Minuten - warum ...

Bei den anderen Versuchen beendete sich das Script sofort.
Das muss mit der Speicherverwaltung zu tun haben, dass
PHP noch so lange rumwerkelt. Denn Code kommt da keiner
mehr, ausser exit; - wie empfohlen ... ;-)

Tja, und dann eben die Ausfuehrungszeit, wenn es mehr
Array-Elemente werden:
    118 files -       4,001 ms - 22:41:30
    782 files -     185,714 ms - 22:43:59
  1.314 files -   1.382,385 ms - 22:45:33
 11.199 files - 220.858,485 ms - 22:50:43

Das sieht nach einer geometrischen Reihe aus, nur warum ...
Die Verarbeitung ist streng linear. Eine foreach-Schleife
mit ein paar Befehlen, keine internen Schleifen, nix (???).

<code>
flush();
$t1 = get_time();
foreach($FA as $kaa => $vaa)
       {$FS[$kaa] = array($vaa, 0);
        }
unset($FA);
foreach($FB as $kaa => $vaa)
       {$issda = (isset($FS[$kaa])) ? $vaa : 0;
        $FS[$kaa] = array($issda, $vaa);
        }
unset($FB);
$iX = 0;
$cA2B = 0;
$cB2A = 0;
$nocp = 0;
foreach($FS as $kaa => $vaa)
       {$cA2B += ($vaa[0] > $vaa[1]) ? 1 : 0;
        $cB2A += ($vaa[0] < $vaa[1]) ? 1 : 0;
        $nocp += ($vaa[0] == $vaa[1]) ? 1 : 0;
        $iX++;
        }
unset($FS);
$t1 = get_time() - $t1;
echo "C: vergleichen\n";
echo sprintf("% 15s", number_format($cA2B,0,",",".")).
     " files - copy A to B\n";
echo sprintf("% 15s", number_format($cB2A,0,",",".")).
     " files - copy B to A\n";
echo sprintf("% 15s", number_format($nocp,0,",",".")).
     " files -   identisch\n";
echo sprintf("% 15s", number_format($iX,0,",",".")).
     " files - ".
     sprintf("% 15s", number_format($t1,3,",",".")).
     " ms - ".date("H:i:s", time())."\n";
exit;
?>
</code>


> > Es gibt in beiden Sprachen Dinge, die es in der anderen
> > gar nicht, oder nur per Workaround gibt, z.B. Hash-Tables
> > kennt Mr.Gates nur vom "hoeren-sagen" ... ;-)
> ja, nur dass php wesentlich schneller ist als vb...
<grmpf>
das kann ich so jetzt nicht mehr unterschreiben, leider.
VB6 ist bei der gleichen Aufgabe ca. 30 mal schneller ...


m. b. G. Norbert
_____________________
normal:  02292-681769
Notruf:  0177-2363368
---------------------
e.o.m.


php::bar PHP Wiki   -   Listenarchive