Google weiß alles: Schneller Test

Beitrag lesen

problematische Seite

Ich bin mir noch nicht ganz sicher ob ich INI nicht die irgendwie nach json "compiliere"

Mir geht es vor allem darum, dass die manuell geänderte INI nur einmal geprüft wird. Das json oder was auch immer ich erzeuge wird dann nicht nochmals geprüft, gefiltert oder sonstwas. Das dürfte auf belasteten oder schwachen Servern dann schon Zeit sparen...

Für Konfigs wie diese hier möchte ich in Gänze

Der Performance-Test mit genau Deinen Daten auf dem Banana:

<?php
header("Content-Type:text/plain; charset=utf8");
$data=file('data.csv');
$ar=array();
foreach ($data as $row) {
    $ar[]=explode('|', trim($row));
}
file_put_contents('data.json', json_encode($ar));
file_put_contents('data.php','<?php $ar='.preg_replace('/\s+/',' ',var_export($ar,true)).';');

?>
=============================
 Lese 1000 mal die data.csv:
=============================
<?php
$ar = array();
$s  = microtime(1);
$ar = array();
for ($i=1; $i < 1000; $i++) {
    $data = file('data.csv');
    $ar = array();
    foreach ($data as $row) {
        $ar[] = explode( '|', trim($row) );
    }
}
$e = microtime(1);
echo 'Array hat ' .count($ar). " Items.\n";
echo ($e-$s), ' Sekunden (avg. ' .  ($e -$s) . ' ms pro Lesevorgang)', "\n\n";
?>
=============================
 Lese 1000 mal die data.json:
=============================
<?php
$ar = array();
$s  = microtime(1);
$ar = array();
for ( $i=1; $i<1000; $i++ ) {
    $ar = json_decode(file_get_contents('data.json'));
}
$e = microtime(1);
echo 'Array hat ' .count($ar). " Items.\n";
echo ($e-$s), ' Sekunden (avg. ' .  ($e -$s) . ' ms pro Lesevorgang)', "\n\n";
?>
=============================
 Lese 1000 mal die data.php:
=============================
<?php
$ar = array();
$s  = microtime(1);
$ar = array();
for ( $i = 1; $i < 1000; $i++ ) {
    include('data.php');
}
$e = microtime(1);
echo 'Array hat ' .count($ar). " Items.\n";
echo ($e-$s), ' Sekunden (avg. ' .  ($e -$s) . ' ms pro Lesevorgang)', "\n\n";

Abrufbar unter: https://home.fastix.org/Tests/performance_data_read/

Banana PI M3 mit PHP 7.0.12-1+deb.sury.org~trusty+1 (cli) ( NTS ):

=============================
 Lese 1000 mal die data.csv:
=============================
Array hat 307 Items.
1.9917180538177 Sekunden (avg. 1.9917180538177 ms pro Lesevorgang)

=============================
 Lese 1000 mal die data.json:
=============================
Array hat 307 Items.
1.2487099170685 Sekunden (avg. 1.2487099170685 ms pro Lesevorgang)

=============================
 Lese 1000 mal die data.php:
=============================
Array hat 307 Items.
0.0023698806762695 Sekunden (avg. 0.0023698806762695 ms pro Lesevorgang)
  1. Auffällig ist, dass JSON sehr viel schneller geworden ist als CSV.

  2. Offensichtlich nimmt PHP7 hier irgendeinen internen Cache oder der Interpreter imgeht es anders, die Datei 1000 x zu inkludieren. Das macht auch Sinn, z.b. im Hinblick auf Microtemplates. Also noch ein Test mit PHP vor Version 7:

Auf dem "richtigen" Rechner mit PHP 5.5.9-1ubuntu4.20 (cli) (built: Oct 3 2016 13:00:37) ergab sich wie folgt:

php test.php
=============================
 Lese 1000 mal die data.csv:
=============================
Array hat 307 Items.
0.70170998573303 Sekunden (avg. 0.70170998573303 ms pro Lesevorgang)

=============================
 Lese 1000 mal die data.json:
=============================
Array hat 307 Items.
1.1871249675751 Sekunden (avg. 1.1871249675751 ms pro Lesevorgang)

=============================
 Lese 1000 mal die data.php:
=============================
Array hat 307 Items.
1.7161350250244 Sekunden (avg. 1.7161350250244 ms pro Lesevorgang)

Hier ist der extrem primitive CSV Reader zwar schneller, kann aber nicht komplexes einlesen. In dem Fall ist die Zeit für JSON vertretbar.

0 91

Feiertage Beta

Tagwächter
  • php
  • seitenbewertung
  1. 0
    MudGuard
    1. 0
      Tagwächter
      1. 0
        Matthias Apsel
        1. 0
          Tagwächter
          1. 0
            Matthias Apsel
          2. 0
            dedlfix
            1. 0
              Tagwächter
              1. 0
                dedlfix
        2. 0
          Tagwächter
          1. 0
            Matthias Apsel
            • php
            1. 0
              Google weiß alles
        3. 0
          Auge
          • menschelei
    2. 0
      Tagwächter
    3. 0
      Tagwächter
      1. 0
        MudGuard
        1. 0
          Der Martin
          1. 1
            MudGuard
            1. 0
              Der Martin
              1. 0
                Tagwächter
        2. 0
          Google weiß alles
  2. 0
    TS
    1. 0
      Tagwächter
  3. 0
    pl
    1. 0
      Tagwächter
      1. 0
        pl
        1. 0
          1unitedpower
          • humor
          • performance
          1. 0

            Komplexe Arrays/Hashs wegschreiben und Lesen - heute: var_dump()

            Google weiß alles
            • performance
            • php
            1. 0

              Komplexe Arrays/Hashs wegschreiben und Lesen - heute: var_export()

              Google weiß alles
              1. 0
                1unitedpower
                1. 0
                  Google weiß alles
                2. 0

                  Feiertage (BETA)

                  Tagwächter
          2. 0
            pl
            1. 0
              1unitedpower
            2. 0

              Schneller Test

              Google weiß alles
              1. 0

                Schneller Test (Fazit)

                Google weiß alles
          3. 0
            pl
            1. 0
              Christian Kruse
              1. 0
                Google weiß alles
                1. 0
                  hausl
                  1. 0
                    Google weiß alles
      2. 0
        TS
        • php
        • projekt
  4. 0
    Rolf b
    1. 0
      Tagwächter
      1. 0
        Rolf b
        1. 0
          Tagwächter
        2. 0
          Tagwächter
          1. 0
            pl
            1. 0
              Google weiß alles
  5. 0
    TS
    • php
    • projekt
    1. 0
      Tagwächter
    2. 0
      Tagwächter
  6. 0
    mermshaus
    1. 0
      Tagwächter
      1. 0

        Allfällige Korrektur

        Tagwächter
      2. 0
        mermshaus
      3. 1
        hausl
      4. 1
        hausl
        1. 0
          Der Martin
          1. 0
            Google weiß alles
            1. 0
              hausl
          2. 0
            hausl
            1. 0
              Der Martin
              1. 0
                Google weiß alles
              2. 0
                hausl
            2. 0
              Tabellenkalk
              • feiertag
              1. 0
                Google weiß alles
              2. 0
                Der Martin
              3. 0
                hausl
                1. 0
                  Google weiß alles
                  1. 0
                    hausl
                    1. 0
                      Google weiß alles
                      1. 0
                        hausl
                  2. 0
                    Google weiß alles
                    1. 0
                      hausl
                      1. 0
                        Der Martin
                  3. 0
                    Der Martin
                    1. 0
                      Google weiß alles
                2. 0
                  Tabellenkalk
                  1. 0
                    hausl
                    1. 0
                      Tabellenkalk
                      1. 0
                        hausl
        2. 0
          Google weiß alles
          1. 0
            hausl
            1. 0
              Google weiß alles
      5. 2
        hausl
        1. 0

          Feiertage Beta - Neue Versionsnummer: 0.4

          Google weiß alles
          1. 0

            Feiertage Beta - Neue Versionsnummer: 0.6

            Google weiß alles
            1. 0

              Feiertage Beta - Neue Versionsnummer: 0.7

              Tagwächter
  7. 0
    pl
    1. 0
      Google weiß alles