» strpos vs. in_array vs. isset - Performance-Benchmark

xt:Commerce 4.2 Multishop: Kategorien verschoben/verschwindenNeuen Thread eröffnenNeue Antwort erstellenWebserver (FTP-Dateien, MySQL) verschlüsselt auf Google Drive sichern
AutorNachricht
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 52421
Wohnort: Lohmar


Meine eBay-Auktionen:
15.10.2017, 18:02
zitieren

Ich wollte mal wissen was am schnellsten ist:

<pre>
<?php

echo phpversion() . PHP_EOL . PHP_EOL;

$array = array_fill(0, 10000, 16);
$array = array_map('openssl_random_pseudo_bytes', $array);
$array = array_map('bin2hex', $array);
$array_flipped = array_flip($array);
$string = implode($array);
$random_keys = array_rand($array_flipped, 10);

$loops = 10000;

$start = microtime(true);
for ($i = 0; $i < $loops; $i++) {
strpos($string, $random_keys[ rand(0, 9) ]);
}
echo __LINE__ . ': ' . round(microtime(true) - $start, 5) . PHP_EOL;

$start = microtime(true);
for ($i = 0; $i < $loops; $i++) {
in_array($random_keys[ rand(0, 9) ], $array);
}
echo __LINE__ . ': ' . round(microtime(true) - $start, 5) . PHP_EOL;

$start = microtime(true);
for ($i = 0; $i < $loops; $i++) {
isset($array_flipped[ $random_keys[ rand(0, 9) ] ]);
}
echo __LINE__ . ': ' . round(microtime(true) - $start, 5) . PHP_EOL;


?>
</pre>

Ergebnis:
5.6.31
19: 1.11484
25: 1.3109
31: 0.00237
38: 13.64204

Wie man sieht ist isset() am schnellsten, aber auch nur, wenn man nicht vorher jedesmal ein array_flip() anwenden muss. Die Daten sollten also von Anfang an so strukturiert werden.


pn email
Gast 
15.10.2017, 18:02
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "strpos vs. in_array vs. isset - Performance-Benchmark" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Benchmark: Prepared Statements in Array
Hi, hier die Resultate: /* // version 1 // 1. run 0.14501937151 // 2. run 0.145541801453 // 3. run 0.141622686386 // fastest run 0.0934751033783 while ($field = $meta->fetch_field()) { $row[] =...
[PHP]von mgutt
0
511
09.10.2009, 18:39
mgutt
Struct Array char array eingeben
Guten Tag, bin neu hier :) wollte mir ein bisschen Hilfe suchen für mein kleines Programm. Hab mir ein Struct erstellt mit einer Funktionsvariable (array) mit 3 Komponenten. Die Größe des Array sollte sich auf 20 Felder begrenzen welche ich nochmals...
[C]von Noob
2
270
01.06.2020, 20:20
Noob
 Einfaches MySQL Benchmark PHP Skript (SELECT BENCHMARK)
Einfaches Skript um MySQl zu benchmarken: <?php $link = mysqli_connect&#40;"localhost", "root", ""&#41;; /&#x2A; check connection &#x2A;/ if &#40;mysqli_connect_errno&#40;&#41;&#41;...
[Allgemein]von mgutt
0
273
19.01.2017, 12:19
mgutt
strpos(), substr() oder str[0] . str[1] um Stringvorkommen zu prüfen?
Wie man sieht ist concat, also die Verkettung von Strings nicht immer die beste Wahl: <?php $str = 'foobar'; $start_time = microtime&#40;true&#41;; for &#40;$i = 0; $i < 1000000; $i++&#41; &#123; if...
[PHP]von mgutt
0
614
05.03.2015, 17:49
mgutt
array in funktion
Hallo , ich möchte 4 zahlen nach der Größe sortieren, das ist für mich Jetzt kein Problem, allerdings möchte ich die Sortierung in einer Funktion machen. Aber die zahlen sollen trotzdem in der main ausgegeben werden also call by reference, kann mir...
[C++]von arti1012
1
370
28.06.2015, 13:33
arti1012
Array Ausgeben
Hi Leute, habe gerade folgenden Code verfasst... public class Array { public static void changeArray(int[] array) { for(int i= 0; i < array.length; i++) { if(array[i] % 2==0) { array[i]= array[i]*-1; } else { array[i]=array[i]*10; } } } public static...
[Java]von DeppJonez
1
367
01.02.2017, 19:42
angemon
Array befüllen
Hallo liebe Gemeinde, ich bin gerade am Java erlernen und habe folgendes Problem: In einem Array sollen per Eingabe Breite/Länge/Höhe an einem Index im Array übergeben werden. Ich schaffe es nicht, diese drei Werte ins Array zu schreiben. Das ist mein...
[Java]von Columbus
0
394
26.05.2021, 15:10
Columbus
Ausgabe Array Länge
Hallo zusammen, ich bin gerade am verzweifeln. Ich versuche ein "Int"-Array auszugeben. Dies mache ich über sizeof(array)/sizeof(int). Hierbei werden aber nicht die richtigen Werte ausgeben. Setze ich die Werte manuell passt es. Wo liegt den...
[C]von freakontour
2
360
19.04.2020, 20:29
freakontour
3D Benchmark
Wollte mal gucken was eure PC´s so hergeben mein pc system: Asus Crosshair ATI 2900 GT Kingstone HyperX DDR1066 2GB standart SPD mit CL 5 xD und kleiner rein hier mal nen 3Dmark03 run mit meiner neuen CPU davor AMD X2 BE 2300 ca 21000...
von R3DEX
79
3.489
28.04.2011, 05:26
nfs_freak
SSD Benchmark: 4K Schreiben ist langsam?
Ich habe eine 850 Pro und nach einem Test mit AS SSD erscheint mir der 4K Schreibwert zu gering zu sein. Erst mal hier der Wert meiner alten 840...
von mgutt
5
1.463
08.12.2015, 17:52
Headshot91
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |