Ich benutze die twitter-async library, um einige oauth Anrufe an Twitter zu tun, aber letztlich wird eine Menge Speicher aufgebraucht. Ich habe versucht, den xdebug-Ausführungs-Trace auszuführen, und hier fühle ich, dass der Speicher durchgesickert ist.gettype() undichte Speicher
json_decode()
verwendet 47077232 Bytes. Okay. Das ist in Ordnung.
Aber gettype()
? Warum sollte das auch eine ähnliche Menge an Speicher verwenden?
Wie könnte dies verhindert werden?
Das Skript wird in einer Schleife ausgeführt und die Speichernutzung steigt weiter. Ich benutze gc_collect_cycles()
an der Anzahl der Orte und es zeigt Verbesserung. Aber dieses hier kann ich nicht verstehen, warum das passieren sollte.
724.1772 47077232 +2118720 -> json_decode() /var/www/html/includes/classes/twitter/EpiTwitter.php:230
724.1926 49157104 +2079872 -> gettype() /var/www/html/includes/classes/twitter/EpiTwitter.php:232
724.1927 49157104 +0 -> property_exists() /var/www/html/includes/classes/twitter/EpiTwitter.php:240
724.1927 49153520 -3584 -> EpiTwitterJson->__destruct() /var/www/html/includes/classes/twitter/EpiTwitter.php:0
724.1949 46714808 -2438712 -> in_array() /var/www/html/cron.php:156
Ich weiß nicht, wenn gettype Speicher verliert aber ich weiß sicher, dass gettype langsam wie die Hölle ist! Vielleicht können Sie von gettype zu is_ * –
migrieren Können Sie den genauen Befehl zeigen, den Sie verwenden? –
@Pekka Konnte dich nicht bekommen. Was genau willst du? – kapeels