0 / 0 / 0
Регистрация: 12.05.2016
Сообщений: 3
|
||||||
1 | ||||||
SELECT запрос файла 128 мб, PHP скрипт отжимает эти 128 мб, можно ли сэкономить?12.05.2016, 12:33. Показов 824. Ответов 4
Метки нет (Все метки)
error_log(memory_get_peak_usage(true));
error_log(memory_get_usage(true)); Показывают, что скрипт отъедает 300 кб, но на практике это: Allowed memory size of 134217728 bytes exhausted (tried to allocate 171544432 bytes) in Unknown on line 0 Процесс apache2 после этого тоже начинает кушать 175 мб, и не теряет свой вес. Пробовал буфферизированные и не буфферизированные запросы, Ubuntu, PHP 5.5 + mysqlind 5.5
0
|
12.05.2016, 12:33 | |
Ответы с готовыми решениями:
4
Типы: почему если прибавить единицу к char, получится 128, а не -128? Массив: Заполнить массив значениями от 0 до 255, если значение меньше 128, заменить на 0, больше 128 - на 1... Чтение byte из файла (Программа шифрования и дешифрования AES-128) MSI H55M-ED55 (MS-7635)Можно ли к ней прицепить ssd на память 128,256гб |
Native x86
5594 / 3338 / 951
Регистрация: 13.02.2013
Сообщений: 10,587
|
|
12.05.2016, 12:53 | 2 |
Похоже, авторам PHP невдомек, что объем свободной оперативной памяти не всегда больше объема данных, они все всегда пытаются начитать в память (а потом еще и продублировать пару-тройку раз), чем достали уже конкретно.
Увеличивайте значение memory_limit, ибо другого способа по-видимому нет.
0
|
0 / 0 / 0
Регистрация: 12.05.2016
Сообщений: 3
|
|
12.05.2016, 13:40 [ТС] | 3 |
Может поможет разбиение на строки и совместное использование небуферизированного запроса? Только сделать такой запрос который разобьет файл на много rows заданной длины мне не известно.
Но по идее, это поможет PHP извлекать данные построчно, не переполняя память.
0
|
Native x86
5594 / 3338 / 951
Регистрация: 13.02.2013
Сообщений: 10,587
|
|
12.05.2016, 13:45 | 4 |
Я бы подумал в сторону начитки блоба по частям. Выполняем несколько раз похожие SELECT-запросы, отличия между которыми только в том, что первый возвращает первые 10 мегабайт блоба, второй -- вторые 10 мегабайт и т.д.
0
|
0 / 0 / 0
Регистрация: 12.05.2016
Сообщений: 3
|
|
12.05.2016, 16:55 [ТС] | 5 |
Получилось сэкономить, запрашивая блоками по 10 мб, + ещё 10 мб уходит на вывод echo (вывод по блокам уменьшает скорость вывода)
0
|
12.05.2016, 16:55 | |
12.05.2016, 16:55 | |
Помогаю со студенческими работами здесь
5
За сколько можно продать такой компьютер: AMD Sempron 3200+ , GeForce FX 5700 128 МБ? Можно ли изменить шину 64 bit в 128 bit? 128 и -128 AtXMega 128 A1 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |