Ускорить переборку объектов getIterator - foreach

Удалось локализовать проблему modx.pro/help/4935/, тормозит переборка foreach. Может кто может посоветовать, как его ускорить?
foreach ($objects as $object) {
	$id_obj = $object->get('id_obj');
	$id_m = $object->get('id_m');
	$id_dt_obj = $object->get('id_dt_obj');
	$id_dt_data = $object->get('id_dt_data');
    $object_data[$id_m]['m_name'] = $object->get('m_name');
    $object_data[$id_m][$id_obj]['obj_name'] = $object->get('obj_name');
    $object_data[$id_m][$id_obj]['obj_type_name'] = $object->get('obj_type_name');
    $object_data[$id_m][$id_obj][$id_dt_obj]['org_name'] = $object->get('org_name');
    $object_data[$id_m][$id_obj][$id_dt_obj]['work_name'] = $object->get('work_name');
    $object_data[$id_m][$id_obj][$id_dt_obj]['dt_obj_name'] = $object->get('dt_obj_name');
    $object_data[$id_m][$id_obj][$id_dt_obj][$id_dt_data]['date'] =$object->get('date');
    $object_data[$id_m][$id_obj][$id_dt_obj][$id_dt_data]['fact_income'] = $object->get('fact_income');
    $object_data[$id_m][$id_obj][$id_dt_obj][$id_dt_data]['fact_expense'] = $object->get('fact_expense');
    $object_data[$id_m][$id_obj][$id_dt_obj][$id_dt_data]['fact_inner_income'] = $object->get('fact_inner_income');
    $object_data[$id_m][$id_obj][$id_dt_obj][$id_dt_data]['fact_inner_expense'] = $object->get('fact_inner_expense');
    $object_data[$id_m][$id_obj][$id_dt_obj][$id_dt_data]['fact_residue'] = $object->get('fact_residue');
    $object_data[$id_m][$id_obj][$id_dt_obj][$id_dt_data]['forecast_expense'] = (float) $object->get('forecast_expense');
}
Выполняется 4,5 — 5 секунд. Если делать не get, а toArray(), то скорость снижается примерно на секунду.
GrinRom
01 марта 2015, 16:32
modx.pro
2 076
0

Комментарии: 1

GrinRom
02 марта 2015, 13:35
0
Решение оказалось простое, надо было лишь отказаться от xPDO))) с 5 секунд до 0,4 секунды.
Спасибо Василию Наумкину!
modx.pro/help/4935/#comment-35591
Может кому пригодится еще)
if ($c->prepare() && $c->stmt->execute()) {
	while ($row = $c->stmt->fetch(PDO::FETCH_ASSOC)) {
		print_r($row);die;
	}
}
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1