Raketenwissenschaftler: Messfehler entdeckt und korrigiert. Erneute Messung:

Beitrag lesen

Und wie das miit dem Überprüfen so ist, findet man da selbst auch Fehler. Hier lag er in der Funktion tausch_rakete(), die bei Copy & Paste mit falschem Inhalt versehen wurde:

function tausch_rakete( $a, $b ) {
	$c = ( $b - $a );
}

Korrigiertes Skript:

<?php

$z=1000000;

for ( $i=0; $i<$z; $i++ ) {
	$a[$i] = sin($i);
	$b[$i] = cos($i);
}

function tausch_rakete( $a, $b ) {
	$c = $a; $a = $b; $b = $c; unset( $c );
}
$s = microtime( true );
for( $i=0; $i<$z; $i++ ) {
    tausch_rakete( $a[$i], $b[$i] );
}
echo "tausch_rakete:\t" . ( microtime( true ) - $s )  . PHP_EOL;

function tausch_dedlfix( $a, $b ) {
	list($a, $b) = [ $b, $a ];
}
$s = microtime( true );
for( $i=0; $i<$z; $i++ ) {
    tausch_dedlfix( $a[$i], $b[$i] );
}
echo "tausch_dedlfix:\t" . ( microtime( true ) - $s ) . PHP_EOL;

function cmp_rakete( $a, $b ) {
		if ($a > $b ) return -1;
		if ($a < $b ) return 1;
		return 0;
}
$s = microtime( true );
for( $i=0; $i<$z; $i++ ) {
    cmp_rakete( $a[$i], $b[$i] );
}
echo "cmp_rakete:\t" . ( microtime( true ) - $s )  . PHP_EOL;


function cmp_dedlfix( $a, $b ) {
		return ( $b - $a );
}
$s = microtime( true );
for( $i=0; $i<$z; $i++ ) {
    cmp_dedlfix( $a[$i], $b[$i] );
}
echo "cmp_dedlfix:\t" . ( microtime( true ) - $s )  . PHP_EOL;

Messung auf einem System mit „AMD Ryzen 7 2700 Eight-Core Processor“ und „PHP 7.2.24-0ubuntu0.18.04.4 (cli) (built: Apr 8 2020 15:45:57) ( NTS )“:

tausch_rakete:	0.83518505096436
tausch_dedlfix:	0.90218114852905
cmp_rakete:	    0.7413489818573
cmp_dedlfix:    0.68741798400879

Ausgaben auf einem System mit „Cortex-A72“ und „PHP 7.4.4 (cli) (built: Mar 20 2020 14:30:40) ( NTS )“:

tausch_rakete:	0.83518505096436
tausch_dedlfix:	0.90218114852905
cmp_rakete:	    0.7413489818573
cmp_dedlfix:    0.68741798400879

Das bereits gezogene Fazit "Tatsächlich! Bezüglich des Vergleiches erscheint Deine Lösung also als etwas performanter." ist trotz des groben Messfehlers richtig.

0 50

Multidimensionales Array sortieren

Rabeneik
  • php
  1. 0
    Tabellenkalk
    1. 0
      Rabeneik
      1. 1
        raketenhandbuchleser
  2. 0
    Raktenhandbuchleser
    1. 0
      Rabeneik
      1. 0
        Raktenhandbuchleser
        1. 0
          Rabeneik
  3. 1
    Rolf B
    1. 0
      Rabeneik
      1. 0
        Rolf B
        1. 0

          Multidimensionales Array sortieren: Neues Array

          Rabeneik
          1. 0
            Rolf B
          2. 0
            Raketenhandbuchleser
            1. 0

              Mist! (Korrektur)

              Raketenhandbuchleser
              1. 0
                Rabeneik
          3. 0
            Rolf B
            1. 0
              Raketenhandbuchleser
              1. 0
                Rabeneik
                1. 0
                  Raketenhandbuchleser
                  1. 0
                    Rabeneik
                    1. 0
                      Raketenhandbuchleser
            2. 0
              Rabeneik
              1. 0
                Rolf B
                1. 0
                  Rabeneik
                  1. 0
                    Raketenwissenschaftler
                    1. 0
                      Rabeneik
                      1. 0

                        Danke fürs Danke!

                        Raketenwissenschaftler
                        1. 0
                          Raketenwissenschaftler
                          • zur info
                    2. 0
                      😁😁
                      • humor
                    3. 1
                      dedlfix
                      1. 1
                        Rolf B
                        1. 0
                          Der Martin
                      2. 0

                        Vorschläge überprüfbar überprüft

                        Raketenwissenschaftler
                        1. 0

                          Messfehler entdeckt und korrigiert. Erneute Messung:

                          Raketenwissenschaftler
                          1. 0
                            Raketenwissenschaftler
                        2. 1
                          dedlfix
                          1. -1
                            Raketenwissenschaftler
                            1. 0
                              Rolf B
                              1. 0
                                Raketenwissenschaftler,
                                1. 1
                                  Rolf B
                                  1. 0
                                    Raketenphilosoph
                                    1. 1
                                      Julius
                                      1. 0

                                        Über CPUs „wandernder“ Prozess

                                        Raketenphilosoph
                                        1. 0
                                          Rolf B
                                          1. 2
                                            Raketenphilosoph
                                          2. 0

                                            (sich kloppende threads)

                                            Raketenspaßverteiler
                                            • humor
                            2. 0
                              Rabeneik
                              1. 0
                                Raketenwissenschaftler
  4. 0
    TS