Я использую библиотеку twitter-async , чтобы сделать несколько вызовов oauth в твиттере, но, в конечном счете, много памяти израсходовано.Я попытался запустить трассировку выполнения xdebug, и именно здесь я чувствую утечку памяти.
json_decode()
использует 47077232 байта.Хорошо.Это нормально.
Но gettype()
?Почему это тоже должно использовать такой же объем памяти?
Как это можно предотвратить?
Скрипт работает в цикле, и использование памяти продолжает расти.Я использую gc_collect_cycles()
в ряде мест, и это показывает улучшение.Но этот, я не могу понять, почему это должно произойти.
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