Век живи, век учись😊
Сопоставимо с РНР, только памяти на 30м+, больше по сравнению с json.loads
Питон почти во всем можно сделать быстрее, а то что не работает быстро - всегда можно переписать на быстрый язык и дергать через FFI. Плюс питон - язык общего назначения, в отличии от пхп, который ограничен сугубо вебом.
джисон декоде 16мб файла - 99мс у php, против 120.
Разница не то чтобы существенная. Для питона есть ультражсон. Но вообще 16мб файл парсить 99мс, это походу очень слабенький ЦПУ, либо в файле большой нестинг и куча объектов.
Результат чего вам показать? Что SimpleXMLIterator позволяет потоково обойти весь файл не вычитывая его в память?
<?phptry { $iterator = new SimpleXMLIterator("./file.xml", LIBXML_NOERROR | LIBXML_PARSEHUGE, true); foreach($iterator as $product) { foreach($product as $props) { $product = [ "ID" => (string) $props->ID, "price_city" => (float) $props->price_city, ]; var_dump($product); } }} catch(\Exception $e) { echo $e->getMessage();}
Я конечно понимаю, что вы не приемлите чужих мнений, парсите на здоровье, кто я такой чтобы вам запрещать. Можете ещё и JSON регулярками парсить. Я лишь хочу сказать, что я бы так не делал, потому что это максимально тупая затея, не имеющая никаких преимуществ. Во-первых, регулярку написать сложнее. Во-вторых, она не стабильна (если в XML будет комментарий, например, с <ID>, то ваша регулярка туда сматчится, и вы получите неопределенный результат). В-третьих, у вас нет возможности для перемещения по дереву вверх-вниз. В-четвертых, не нужно вычитывать весь файл в память. Если вы клоните к тому, что регулярки быстрее, то молодец, оптимизировали хотспот так скозать.
Предельно тупо писать отсебятину, вот человек вверху всё достаточно протестировал.
Ну да, человек протестировал, и что мы видим? Что ...
... потому что это не дает никаких преимуществ в скорости. Более того, ТСу нужно получать свойства каждого конкретного товара, ваше решение выколупывать регулярками iD, Price, и прочее, из вложенных нод, это просто неправильно выбранный инструмент для данной задачи.
Хз, в бою я бы не рискнул это использовать, уж лучше питончик заюзать (который я никак не выучу).
Я вообще большую часть API последнее время пишу на nest.js, который на тайпскрипте. Мега крутая штука, на вход описываешь принимаемый жсончик, на выход возвращаемый, DI все зависимости/сервисы за тебя подключит, ты их просто перечисляешь. По итогу не фиговая такая производительность и статическая типизация.
О г о, пул воркеров на PHP?
Ну у тебя хороший стэк и опыт. А почему не уходишь во ФЛ?
Так я наполовину и FL, считай. У нас есть устная условленность с компанией на которую я работаю, что я буду уделять время работе столько-то часов в день и т.д. На полный фриланс я не ухожу, потому что мой стек не используется мелкими компаниями.
Фриланс лучше. Гибкий график, сам выбираешь клиентов, нет дейликов, захотел отдохнуть - ни у кого не нужно отпрашиваться в отпуск и объяснять почему ты второй месяц подряд берешь отпуск на 2 недели, захотел поработал ночью (меня например ночью пробивает поработать, самый пик продуктивности, а утром или в обед хочется покататься на велосипеде, восстановить когнитивный ресурс).
По зарплатам, например мои знакомые на апворке в месяц поднимают от 4к$ до 9к$, в зависимости от отпусков и прочего. У одного стек магенто, у другого вротпресс.
Я сам работаю в компании, но должности как таковой нет, утром лид и на дейлике дрючу разработчиков, днем пишу код, после обеда девопсю кластеры, к вечеру архитектором разворачиваю инфру и дизайню систему в целом. Платят вроде бы и норм, но я бы лучше фрилансил за 9к, т.к. больше свободного времени.
https://searchengines.guru/ru/forum/1032923/page7#comment_16501150
Сеньйор осилил эту задачу?