Raketentuner: JSON könnte wohl schneller erzeugt und geparst werden

Beitrag lesen

Die Durchlaufzeit auf dem Server für eine Tabelle mit 300 Positionen beträgt bei ALT 3.512 sec, bei NEU 0.03 sec.

Das geht (in Abhängigkeit davon, wie Dein CSV ensteht) wohl noch besser. Habe mal was getestet:

<?php

$ar=[];
for( $i=0; $i<300; $i++ ) {
	$row[0]=$i;
	$row[1]=md5( date( $i ) );
	$row[2]=sha1( $row[1] );
	$ar[]=$row;
}
unset ( $row );

$csv='';
$start = microtime(true);
foreach ( $ar as $row ) { 
	$csv .= $row[0] . ';"' . str_replace('"', '\"', $row[1] ) .  ';"' . str_replace('"', '\"', $row[2] ) .   ';"' . "\r\n";
}
$end = microtime( true );
echo 'CSV (Excel):   ' . round ( ( $end - $start ) * 1000, 2 ) . "ms" . PHP_EOL;

$csv='';
$start = microtime( true );
foreach ( $ar as $row ) { 
	$csv .= implode( ";", $row )  . "\r\n";
}
$end = microtime( true );
echo 'CSV (implode): ' . round ( ( $end - $start ) * 1000, 2 ) . "ms" . PHP_EOL;

if(!function_exists('str_putcsv'))
{
    function strPutCsvRow($input, $delimiter = ',', $enclosure = '"')
    {
        $fp = fopen('php://temp', 'r+');
        fputcsv($fp, $input, $delimiter, $enclosure);
        rewind($fp);
        $data = fread($fp, 1048576);
        fclose($fp);
        return rtrim( $data );
    }
 }


$csv='';
$start = microtime( true );
foreach ( $ar as $row ) { 
	$csv .= strPutCsvRow( $row, ',', '"') . "\r\n";
}
$end = microtime( true );
echo 'CSV (putcsv):  ' . round ( ( $end - $start ) * 1000, 2 ) . "ms" . PHP_EOL;
$json='';
$start = microtime( true );
$json = json_encode( $ar );
$end = microtime( true );
echo 'JSON (encode): ' . round ( ( $end - $start ) * 1000, 2 ) . "ms" . PHP_EOL;
CSV (Excel):   0.4ms
CSV (implode): 0.17ms
CSV (putcsv):  1.22ms
JSON (encode): 0.09ms

Ich vermute mal, dass Javascript das JSON dann auch schneller verarbeitet..

4 48

Datensparsamkeit ist Umweltschutz

marctrix
  • ethik
  • gesellschaft
  • meinung
  1. 1
    Rolf B
    1. 0
      marctrix
  2. 1
    1unitedpower
    1. 0
      marctrix
    2. 0

      Über: Datensparsamkeit ist Umweltschutz, Messen und Westchinesische Verfassungstreue

      Raketenfluginspektor
  3. 4
    dedlfix
    1. 2
      marctrix
      1. 2
        dedlfix
        1. 0
          marctrix
    2. 1
      Der Martin
      1. 2
        dedlfix
        1. 0
          Der Martin
          1. 0
            dedlfix
    3. 0
      Auge
      1. 0
        Rolf B
        1. 1
          Auge
  4. -1
    Linuchs
    1. 0

      JSON könnte wohl schneller erzeugt und geparst werden

      Raketentuner
      1. 0
        pl
    2. 0
      Linuchs
    3. 2
      Gunnar Bittersmann
      • html
      • javascript
      1. 1
        TS
        • ajax
        • html
        • javascript
    4. 0
      pl
      1. 0
        Der Martin
        1. 0
          pl
    5. 0
      Auge
  5. 0
    klawischnigg
    1. 0
      TS
      • ethik
      • gesellschaft
      • humor
      1. 0
        klawischnigg
    2. 0
      Linuchs
      1. 2
        Der Martin
        1. 0
          dedlfix
          1. 0
            TS
            1. 0
              Auge
              1. 0
                JürgenB
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    Tabellenkalk
                2. 0
                  Auge
                  1. 0
                    Rolf B
                    1. 0
                      Auge
                      1. 0
                        klawischnigg
                        1. 0
                          Auge
                          1. 0
                            klawischnigg
                          2. 0
                            TS
  6. -3
    pl
    1. 0
      pl
  7. 0
    pl