Я нашел ошибку. Все было вызвано опечаткой для атрибута OU в AUTH_LDAP_REQUIRE_GROUP. Исправили это и изменили AUTH_LDAP_GROUP_TYPE на ActiveDirectoryGroupType, все начало работать.
На http://www.xdebug.org/updates.php для Xdebug 2.0.4 они пишут в разделе, "удалил функции": "... Удаленная поддержка Памяти, представляющей, поскольку, это не работало правильно...". Следовательно привычка xdebug быть опцией
Графический инструмент для вывода xdebug KCacheGrind.
Попробуйте webgrind. Это дает Вам профилирование CacheGrinder в легком для чтения, основанный на браузере формат. Я нахожусь на Mac, и он сделал профилирование бриза.
phpDesigner 2008 может отладить и сравнить веб-сайтов с помощью xdebug и KCacheGrind. Это также имеет встроенный монитор.
Я недавно столкнулся с той же проблемой, не мог найти определенные инструменты, к сожалению.
, Но что-то, что помогло, должно было произвести трассировку xdebug в человекочитаемом формате с включенными дельтами мадам (установка INI, xdebug.show_mem_deltas или что-то, что я думаю?). Тогда выполненный вид (если Вы идете *, отклоняют) на выводе:
sort -bgrk 3 -o sorted.txt mytracefile.xt
, Что виды на третьем седле, дельтах мадам. Можно также отсортировать на втором столбце, в этом случае можно найти строку, в которой приложение использует большую часть памяти всего.
, Конечно, это не может обнаружить, когда использование памяти объекта только накапливается в маленьких инкрементах, но заканчивает тем, что использовало большую память в целом. У меня есть довольно немой метод, который пытается сделать это использование комбинации объектного повторения и сериализации. Это, вероятно, не приравнивается точно к использованию памяти, но надо надеяться дает общее представление о том, где начать смотреть. Примите во внимание, что это израсходует саму память, и также не было экстенсивно протестировано, таким образом, покупатель будет остерегаться:
function analyzeMem($obj, $deep=false)
{
if (!is_scalar($obj))
{
$usage = array('Total'=>strlen(serialize($obj)));
while (list($prop, $propVal) = each($obj))
{
if ($deep && (is_object($propVal) || is_array($propVal)))
{
$usage['Children'][$prop] = analyzeMem($propVal);
}
else
{
$usage['Children'][$prop] = strlen(serialize($propVal));
}
}
return $usage;
}
else
{
return strlen(serialize($obj));
}
}
print_r(analyzeMem(get_defined_vars()));
кроме того, просто был предложен этот метод коллеги (приветствует Dennis;-) Это скрывает шаги, которые являются ниже 2 уровней добавления отступа, можно довольно легко видеть точки, где полное использование памяти подпрыгивает и может сузить вещи путем увеличения добавления отступа:
egrep '[0-9]+ ( ){1,2}-> ' mytracefile.xt