Работа с массивом на PHP
Проведено исследования на сервере скорости обработки большого массива строк (166385 строк) и способ хранения массива в виде текстового фала (подобно csv с разделителем строк "переносом строки" и разделителем полей "табуляцией"), в виде сериализации массива. Оба способа при записи на диск подвергаются сжатию функцией gzencode(), таким образом занимат примерно в 5 раз меньше памяти (2 Мб вместо 10Мб). Нужно доработать эксперимент проверкой еще одного способа указанного здесь http://qaru.site/questions/123310/how-do-i-store-an-array-in-a-file-to-access-as-an-array-later-with-php (ищите на странице фразу "Еще один быстрый способ"), только попробуйте запаковать массив в виде : https://www.php.net/manual/ru/phar.using.intro.php и потом подключить файл к основному скрипту.
Вообщем Ваша задача сделать пример выгруззки любого массива в Phar-архив и затем подключить его. По идее такой способ хранения будет занимать места не больше чем gzip-архив, при этом подключаться гораздо быстрее. Поскольку сейчас узким местом является десериализации массива либо разбивка строк либо разбивка строк при помощи explode. И проверить, будет ли способ через подключение Phar-архива работать быстрее, чем десериализация. Поскольку еще пробовали eval http://qaru.site/questions/123310/how-do-i-store-an-array-in-a-file-to-access-as-an-array-later-with-php как описано здесь, но более быстрых результатов это почему-то не дало.
Все время в єксперименте обозначено в миллисекундах: с*10-3.
Результату єксперимента:
Разрешено ОЗУ: 128M
Еxplode
Время создания массива csv: 258.46с*10-3
Всего: 166385 строк
Пик ОЗУ: 86.75Мб
Сериализация
Время сериализации массива: 65.21с*10-3
Время записи ser: 70.69с*10-3
Время считывания ser: 5.34с*10-3
Время десериализации массива: 88.88с*10-3
Всего: 166385 строк
Разрешено ОЗУ: 128M
Пик ОЗУ: 125.5Мб
-
1482 28 0 Обращайтесь, сделаю
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
Актуальні фриланс-проєкти в категорії PHP
Багатосторінковий HTML-шаблон веб-сайту для онлайн-ставок та парсинг API матчів (
1109 UAH
|
Вирішити проблему навантаження на хостинг сайта на ПресташопСайт з кожним місяцем потребує більше і більше ресурсів. Відповідь хостера:Під час перевірки сервера було зафіксовано підвищене навантаження з боку сервера баз даних MySQL. У моменти виникнення помилки 500 процес MySQL використовує значну частину ресурсів процесора, що може… PHP, Бази даних та SQL ∙ 6 годин 13 хвилин тому ∙ 18 ставок |
Потрібна інтеграція KeyCRM → ПРРО Кашалот |
Сайт на WordPress з використанням теми Kadence та Kadence Blocks.
10 000 UAH
Нам потрібно створити сайт на WordPress з використанням теми Kadence та Kadence Blocks. Інтернет-магазину не буде (хоча, ймовірно, він буде доданий у майбутньому). Потрібна головна сторінка та кілька внутрішніх сторінок. Графіка вже готова, структура макета здебільшого… CMS, PHP ∙ 1 день 17 годин тому ∙ 37 ставок |
Розробка 2 SEO-орієнтованих сайтів з продажу запчастин (квадроцикли та спецтехніка)Розробка двох спеціалізованих сайтів з продажу запчастинЗагальна інформація Потрібно розробити два спеціалізовані сайти: Запчастини для квадроциклів, UTV, SSV та іншої подібної техніки. Запчастини для спеціальної техніки. Існуючий сайт компанії: https://kiaparts.com.ua/ Нові… PHP, Веб-програмування ∙ 2 дні 14 годин тому ∙ 76 ставок |