11 Kommentare zu diesem Eintrag
Abonniere dieses Thema via Kommentar RSS oder setzte einen TrackBack URL
mygif_alt
awokenMIND sagt, am 30. März 2008 um 22:50:36 Uhr.     

(int)$foo nennt man (Type-)Casting. Du castest einen String zu Integer. Darf man fragen, wieviele Zyklen für die Statistik herangezogen wurden?

mygif
Markus sagt, am 30. März 2008 um 22:59:23 Uhr.     

Achso, gut zu wissen :)
10.000, hab ich vergessen zu erwähnen ;)

mygif_alt
Andy sagt, am 31. März 2008 um 21:54:15 Uhr.     

Und was ist mit “settype()”?
http://de.php.net/manual/de/function.settype.php

mygif
asd sagt, am 30. März 2009 um 11:16:58 Uhr.     

bei meinen tests ist casting grundsätzlich _viel_schneller als methodenaufrufe… irgend etwas stimmt hier nicht

mygif_alt
mysql_real_escape_string / Sicherheit - Was, wann und wie? - Seite 2 - php.de sagt, am 10. Mai 2009 um 11:49:08 Uhr.     

[...] konnte war, dass die Geschwindigkeiten variieren. Und intval soll davon die schnelle sein… (Quelle) Lg wassereimer __________________ Wer fragt ist ein Narr - für 5 Minuten. Wer nicht fragt ist [...]

mygif
nebler sagt, am 19. Juli 2009 um 17:23:24 Uhr.     

Also sollte ein String zu Int gecastet ist das indirekt IMMER mit einem Funktionsaufruf verbunden -> da das Problem ist, das Strings variable längen haben. Und somit nicht einfach gecastet werden können.

Würde den Test mal versuchen mit einer Float auf Int, da wird der Speicherbereich einfach verkleinert. Und würde das ganze so mal testen, sofern das überhaupt funktioniert.

mygif_alt
Anders sagt, am 3. November 2009 um 20:07:03 Uhr.     

die Zahlen sind gut und schön, bringen aber nichts. Bei eigenen Testläufen die ich veranstaltet habe musste ich feststellen, dass derartige Operationen auch ganz stark von der CPU abhängen. So war bei mir eine Operation unter einem Intel mit HighEnd Board und HighEnd-Ram schneller als unter einem AMD mit Standard-Board und NoName Ram. Hingegen konnte der AMD dabei dann wieder mit anderen Funktionen wo Intel langsamer war toppen. PHP-Version sowie sonstige Systemkonfiguration (OS, Laufende Prozesse & Dienste etc.) waren auf beiden Systemen absolut gleich. Ebenfalls waren die Kisten für die Testläufe extra neu gebootet worden.

Für meine Testläufe hatte ich die Kisten aber auch mehrere Tage am Stück laufen lassen um möglichst passende Werte zu erzielen. Heißt: 2.000 Durchläufe á 5 Millionen Durchläufe. (Um besser ersichtliche Werte zu erzielen)

10.000 Durchläufe sind zu schnell durch und besitzen von daher in meinen Augen keine Aussagekraft da diese zu sehr von kleineren Systemauslastungen etc. beeinflusst werden können.

mygif
hakre sagt, am 13. Mai 2010 um 17:27:52 Uhr.     

Ich konnte einen Unterschied bei 100 000 Durchläufen feststellen und zwar schneidet der cast mit (int) merklich besser ab.

Ich habe die Ergebnisse online gestellt:
http://hakre.wordpress.com/2010/05/13/php-casting-vs-intval/

mygif_alt
Juergen sagt, am 28. Juni 2010 um 14:09:49 Uhr.     

Danke für den Tipp und die Gegenüberstellung.
Und ich werde weiterhin intval() nehmen, da ich mich an dieses Typecasting nicht gewöhnen kann…. mag ich bei Java schon nicht… Pfui Bäh!

mygif
LalBoardtat sagt, am 1. April 2011 um 01:19:11 Uhr.     
mygif_alt
Wulfi sagt, am 21. August 2011 um 18:03:59 Uhr.     

Du hast den Autocast vergessen: $var + 0. Das ist noch schneller, als Deine beiden Varianten.

Und im Übrigen sollte man immer das vorziehen, was die Lesbarkeit unterstützt.

Hinterlasse ein Kommentar

 Name (*Pflichtfeld)

 Email Addresse (*wird nicht veröffentlicht)

 Website (*optional)

Informiere mich wenn hier jemand einen Nachricht hinterlässt.

Bitte beachte: Möglicherweise wird dein Kommentar noch überprüft, du musst ihn also nicht nochmal versenden falls es hier nicht angezeigt wird.