- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Выхлоп в CSV, в JSON лень.
Если не грузить сразу в память всё, то ИМХО, только и перебором символов получится.
Ну оно по сути все через перебор символов работает, только можно делать это буферизированно, а можно задалбывать диск и ядро сисколами, читая по 1 байту.
И можно сразу в память все распаковать, а можно читать и по чуть-чуть распаковывать, попутно высвобождая память. У второго подхода как вы понимаете много преимуществ, на слабых машинах можно парсить огромнейшие файлы, можно прервать распаковку на пол пути, если например стоит задача читать до тех пор, пока не найдем нужный нам объект.
За сколько у вас отработал ваш код на данном файле?
ИМХО, только и перебором символов получится
Решения выше было со stream_get_line, пачкой символов до разделителя + preg_match. Чтение по одному символу позволяет проще решить задачу.
Особенно если чуть задачу усложнить. В json
И надо найти scores.max, например более 500, при этом формат объектов гибкийЧуть изменив код
задача легко решается
------------
а можно задалбывать диск и ядро сисколами, читая по 1 байту.
Это да, конструктивное замечание, но за 20 мин сложно набросать рабочее. Мне по крайней мере.:(
Вот полностью рабочий код с посимвольным вычитыванием на Питон
Executing time: 0.2150096893310547
Выходной файл валидный)
Это конечно очень грубо, можно еще оптимизировать
И просьба ко всем - приводить полностью листинг программы, чтобы можно было запустить и почекать время)
---------- Добавлено 15.06.2020 в 10:47 ----------
На php он может быть еще короче, если не читать посимвольно.
Это уже будет нарушением условий задачи)
Вы опять потоковый парсер json пишете?
Их в гугле полно https://github.com/salsify/jsonstreamingparser
Это уже будет нарушением условий задачи)
Нет. Идет чтение потока до определенного символа либо length параметра, посимвольным чтением занимается не мой код, а встроенные функции, что конечно быстрее.
---------- Добавлено 15.06.2020 в 11:10 ----------
Executing time: 0.2150096893310547
0.10043406486511 :)
За сколько у вас отработал ваш код на данном файле?
Условия у всех разные. Для справедливой оценки на 1 машине все пускать надо.
У меня например, запускалось примерно в таких условиях
У меня например, запускалось примерно в таких условиях
Ты б еще мельче скрин выложил)
Ты б еще мельче скрин выложил)
Там кликнуть можно
Для справедливой оценки на 1 машине все пускать надо.
Причём, одновременно :)
Надо какую-то обёртку, время всех запущеных разом скриптов (на разных языках) сравнивать.
Хотя можно вот так:
Это сама идея, х.з. что выйдет, надо поиграться.