Chúng tôi có vấn đề với bộ nhớ bị rò rỉ khi tải Học thuyết trong các thử nghiệm phpunit của chúng tôiSymfony và PHPUnit bộ nhớ bị rò rỉ
Bắt đầu cho tài liệu Symfony của: http://symfony.com/doc/2.7/cookbook/testing/doctrine.html chúng tôi đã viết bài kiểm tra này:
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
class memoryleakTest extends KernelTestCase
{
private $em;
protected function setUp()
{
self::bootKernel();
$this->em = static::$kernel->getContainer()
->get('doctrine')
->getManager();
}
protected function tearDown()
{
parent::tearDown();
$this->em->close();
}
function testEEE1() {
}
function testEEE2() {
}
function testEEE3() {
}
function testEEE4() {
}
function testEEE5() {
}
function testEEE6() {
}
function testEEE7() {
}
function testEEE8() {
}
function testEEE9() {
}
function testEEE10() {
}
function testEEE11() {
}
function testEEE12() {
}
function testEEE13() {
}
function testEEE14() {
}
function testEEE15() {
}
function testEEE16() {
}
}
chúng tôi đã nhận kết quả này (php_memory_usage giữa dấu ngoặc đơn):
testEEE1: . (42M)
testEEE2: . (42.7M)
testEEE3: . (43.3M)
testEEE4: . (44M)
testEEE5: . (44.8M)
testEEE6: . (45.5M)
testEEE7: . (46.1M)
testEEE8: . (46.8M)
testEEE9: . (47.4M)
testEEE10: . (48.1M)
testEEE11: . (48.7M)
testEEE12: . (49.4M)
testEEE13: . (50.1M)
testEEE14: . (50.7M)
testEEE15: . (51.4M)
testEEE16: . (52M)
Nếu chúng tôi xóa trình quản lý học thuyết tải trong thiết lập, chúng tôi có (32,7M) cho mỗi bài kiểm tra
Đây có phải là cách thích hợp để dỡ bỏ học thuyết sau mỗi bài kiểm tra trong chức năng teardown không?
có vẻ ổn với tôi. bạn có bất kỳ thứ curl nào trong đó không? khiến tôi bị rò rỉ bộ nhớ thảm khốc – DevDonkey
@DevDonkey không có gì chính xác hơn trong bài kiểm tra: không có curl, không truy cập DB ... chỉ cần gọi giáo lý mà không cần sử dụng nó (vì vậy có lẽ nó tải tất cả siêu dữ liệu). Dường như tất cả thông tin này được nạp trong bộ nhớ sẽ không được giải phóng, ngay cả với kernel-> shutdown() – Cedric