powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP, Yii] Memory leaks в консольном приложении при вставлке множества записей в бд
7 сообщений из 7, страница 1 из 1
[PHP, Yii] Memory leaks в консольном приложении при вставлке множества записей в бд
    #39683161
spider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос следующий, при вставке множество записей в БД возникает утечка памяти.

Консольное приложение выполняет импорт базы данных из файла в mysql. Соотвественно я считываю строку за строкой из файла, и по одной записи вставляю в бд

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
            $databaseFileHandle = fopen($databaseFile, "r");
            try {
                while (!feof($databaseFileHandle)) {
                    $databaseFileLine = fgets($databaseFileHandle);
                    $databaseFileLine = trim($databaseFileLine);
                    if(strlen($databaseFileLine) > 0) {
                        $databaseFileLineEncoded = json_decode($databaseFileLine, true);
                        $this->processPropertyDataComplete($databaseFileLineEncoded);
                    }
                }
            } finally {
                fclose($databaseFileHandle);
            }



Ну и соотвественно сама функция обработки

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
                $propertyRoom = new PropertyRoom();
                                $propertyRoom->native_id = $room["id"];
                if(!empty($room["name"])) {
                    $propertyRoom->name = $room["name"];
                }
                if(isset($room["descriptions"]) && isset($room["descriptions"]["overview"])) {
                    $propertyRoom->description_overview = $room["descriptions"]["overview"];
                }
                $propertyRoom->save();



В процессе выполнения мне нужно обработать более 1000000 записей. Все работает нормально, только вот в процессе ростет потребление памяти, и на 200000 элементе скрипт падает из-за превышения потребления памяти.

Кто-то может подстказать в чем проблема?

Код: php
1.
2.
3.
PHP 7.0.29 (cli) (built: Mar 30 2018 11:03:14) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
...
Рейтинг: 0 / 0
[PHP, Yii] Memory leaks в консольном приложении при вставлке множества записей в бд
    #39683276
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В самой модельке есть какая-то логика?
...
Рейтинг: 0 / 0
[PHP, Yii] Memory leaks в консольном приложении при вставлке множества записей в бд
    #39684068
spider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettВ самой модельке есть какая-то логика?

В том и проблема что нет.

PropertyRoom extends CActiveRecord
И там по сути кроме описания самой модели нет.
...
Рейтинг: 0 / 0
[PHP, Yii] Memory leaks в консольном приложении при вставлке множества записей в бд
    #39684070
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может и в самом юи утечка. Не так давно сталкивался с проблемой утечки в драйвере (mongodb, которую они потом признали и исправили). Как вариант, - можно поэкспериментировать с версиями, если в своем коде уверены (я вот не уверен, так как его не видел полностью).
...
Рейтинг: 0 / 0
[PHP, Yii] Memory leaks в консольном приложении при вставлке множества записей в бд
    #39686764
spider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettМожет и в самом юи утечка. Не так давно сталкивался с проблемой утечки в драйвере (mongodb, которую они потом признали и исправили). Как вариант, - можно поэкспериментировать с версиями, если в своем коде уверены (я вот не уверен, так как его не видел полностью).

В самом yii утечки нет. Скорее всего утечка идет в модуле pdo для php. Много людей жаловались на утечки в pdo php версий 7.0 и 7.2
...
Рейтинг: 0 / 0
[PHP, Yii] Memory leaks в консольном приложении при вставлке множества записей в бд
    #39686770
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть пхп-демоны активно работающие с СУБД, работали и на 7.0 и на 7.2 (yii2) - проблем нет.
...
Рейтинг: 0 / 0
[PHP, Yii] Memory leaks в консольном приложении при вставлке множества записей в бд
    #39686771
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
займитесь отладкой, http://php.net/manual/ru/function.memory-get-usage.php в помощь
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP, Yii] Memory leaks в консольном приложении при вставлке множества записей в бд
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]