首页 > 解决方案 > Symfony 序列化程序的性能问题

问题描述

我需要一些关于本机 Symfony 序列化程序的性能问题的帮助

如果我尝试像这样序列化一个实体数组:

$serializedReservations = $this->serializer->serialize($reservations, 'json', ['groups' => 'reservationDetails', 'enable_max_depth' => true]);

序列化时间超过 1s

另一方面,如果我这样做:

$data = [];
foreach ($reservations as $reservation){
    $data['idreservation'] = $reservation->getIdreservation();
    $data['idcommand'] = $reservation->getCommand()->getIdCommand();
    $data['title'] =$reservation->getCommand()->getTitle();
    $data['serialnumber'] = $reservation->getStock()->getSerialNumber();
    $data['ubd'] = $reservation->getStock()->getUBD();
}

$serializedReservations = $this->serializer->serialize($data, 'json', ['groups' => 'reservationDetails', 'enable_max_depth' => true]);

序列化仅需 21 毫秒!

因此,序列化数组当然比实体更快,但是为什么第一种方法在包含完全相同的数据时会这么慢(“reservationDetails”组过滤了我从 data[] 获得的相同 6 个数据)?

如果有人有想法甚至线索,我很感兴趣。如果我无法解决问题,我可能会尝试切换到 JmsSerializer。

标签: phpsymfonysymfony4

解决方案


推荐阅读