php - Symfony:从 postgresql 获取时吃掉我所有的 ram
问题描述
首先这是我正在使用的:
- KDE neon 用户版 5.20 (Ubuntu 20.04)
- symfony CLI v4.21.3
- php v7.4.3
- PostgreSQL v12.5
Apache2 也已安装,但我使用的是 symfony 本地服务器。
Apache2 和 PostgreSQL 被禁用,每当我想处理这个项目时,我都会启动它们。
在使用php bin/console
.
该php bin/console doctrine:migrations:migrate
命令正确地创建了我的表。
将数据插入表中没有问题。
我有两个不同的表:
它们在我的数据库的公共架构中,目前分别有 2 行和 6 行。
我试图在我的控制器中运行以下代码只是为了测试:
class MainController extends AbstractController {
/**
* @Route("/", name="index")
*/
public function index(): Response {
$room = $this->getDoctrine()->getManager()->getRepository(Room::class)->find(1);
var_dump($room);
return $this->render("main/index.html.twig", [
"controller_name" => "welcome"
]);
}
}
出于某种原因,当我试图在我的浏览器上加载这个页面时,symfony 吃掉了我所有的内存。如果我不关闭选项卡或停止本地服务器,我的计算机开始变慢,因为内存已满。
我也尝试简单地使用:
$room = $this->getDoctrine()->getManager()->getRepository(Room::class)->findAll();
我遇到了同样的问题。
但是,当尝试获取不存在的东西时,一切正常。
$room = $this->getDoctrine()->getManager()->getRepository(Room::class)->find(999);
是我设置的东西吗?还是 postgresql ?
谢谢你。
解决方案
显然,Room 对象太大并且还包含依赖对象,因此您的浏览器正在努力显示大量数据。我建议使用VarDumper 组件而不是 var_dump。它在使用内部引用和递归处理大型对象方面更有效。
dump($room);
推荐阅读
- php - 导航未在我的视频集顶部显示为背景
- java - 将带有字符串的图标作为 XAxisValues 添加到 MPAndroid 图表
- c - 为什么取消引用指针并打印使程序崩溃的值
- java - 准确计算 9^(9^9) 所有数字的最快方法?
- excel - 使用 VBA 浏览多个 .csv 文件
- vue.js - Vue 重定向。我的代码是注意重定向到我想要的页面
- javascript - 在 JSP 中创建模式对话框并执行 POST 操作
- reactjs - 强制 SPA 添加到主屏幕弹出窗口即使在添加到主屏幕后也会显示
- docker - docker-compose,在不启动容器的情况下重建图像
- oracle - 我们应该何时以及如何为存储过程(Oracle DB)的执行编写应用程序日志?