Можете ли вы действительно покрыть "сто безобразных"? Почему мы должны отказаться от FastJson

1. Что такое FastJson

Во-первых, скопируйте введение с официального сайта: FastJson - это библиотека синтаксического анализа JSON с открытым исходным кодом Alibaba, которая может анализировать строки формата JSON, поддерживать сериализацию Java Bean в строку JSON, а также может десериализовать строку JSON в JavaBean.

FastJson - одна из библиотек классов, обычно используемых программистами на Java. Я верю, что тот, кто нажмет на эту страницу, обязательно станет другом программиста. Как следует из названия, «быстрый» является его основным пунктом продажи.

Можете ли вы действительно покрыть "сто безобразных"?  Почему мы должны отказаться от FastJson


2. Это действительно быстро?

Без исследований нет права говорить. С первоначальным намерением «искать истину» давайте проведем простой раунд тестирования. Для сравнения выберите наиболее широко используемые Джексон и Гсон производства Google. Тестовая среда выбрала JDK 8, AMD 3700X, 3200MHZ памяти. Упростите эксперимент, протестируйте только строку «Строка в объект» и «Строка в объект» для простых и сложных объектов. Результаты сравнения при вызове 10 миллионов раз выглядят следующим образом (единица времени - миллисекунды):

Можете ли вы действительно покрыть "сто безобразных"?  Почему мы должны отказаться от FastJson


Судя по результатам теста, FastJson действительно самый быстрый, но всего на 20% быстрее, чем Джексон, Gson от Google - самый медленный, разрыв больше. Прочитав это, вы считаете правильным выбрать FastJson! Если интервьюер спрашивает, почему стоит выбрать FastJson? Потому что быстро! Эта причина может оттолкнуть его назад.

Расследований и исследований здесь недостаточно, и нет проверки потребления памяти и больших документов.

В современных приложениях даже самый медленный Gson удовлетворяет потребности, скорость разбора документов - не единственный критерий выбора и, возможно, даже не главный критерий. Меры оптимизации, такие как оптимизация ввода-вывода и параллельная обработка, более эффективны, чем выбор более быстрой библиотеки.

3. FastJson не так популярен

Тем не менее, FastJson не так популярен, есть одна из самых интуитивных данных, то есть количество цитирований в Maven, и Джексон и Гсон не в одном порядке, и могущественное семейство Джексонов не может сравниться.

Можете ли вы действительно покрыть "сто безобразных"?  Почему мы должны отказаться от FastJson


Я использую поддельную популярную домашнюю библиотеку? Я видел сообщение в Жиху, в котором обсуждается, почему иностранным друзьям не нравится FastJson. Таким образом, FastJson - это отечественная библиотека с низким качеством кода. Это полностью подорвало мое восприятие, потому что в моем проекте часто используется FastJson, и нет никаких ошибок, и этот комментарий был написан в 2016 году.

Можете ли вы действительно покрыть "сто безобразных"?  Почему мы должны отказаться от FastJson


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

Можете ли вы действительно покрыть "сто безобразных"?  Почему мы должны отказаться от FastJson


Тестовый код выглядит следующим образом:

Можете ли вы действительно покрыть "сто безобразных"?  Почему мы должны отказаться от FastJson


Конечно, после использования последней версии библиотеки классов, как описано в проблеме, все еще есть отклонения. Итак, я увидел следующий исходный код:

Можете ли вы действительно покрыть "сто безобразных"?  Почему мы должны отказаться от FastJson


Этот код имеет серьезные логические ошибки, такие как неправильный формат, например:

«1970-01-01 00: 00: 00.000000000.000000000»

или

«1970-01-01 00: 00: 00.000000000.000000»

Также могут быть успешно преобразованы и некоторые правильные форматы, такие как:

«1970-01-01 00:00:00» «1970-01-01 00: 00: 00.000»

Но преобразование не удалось.

В сочетании с комментариями друзей из интернета, я также думаю, что FastJson не так хорош, другие глубокие обзоры, такие как ASM, не имеют глубокого понимания, и я не буду делать тест.

Четыре, заброшенная яма fastjson

В проекте, за который я отвечаю, потому что Джексон применяется в рамках Spring Boot, по принципу «наименьшей зависимости», Джексон применяется для анализа json. Но код многих коллег также использует Gson и Fastjson. Конечно, это результат не строгих требований.

Благодаря небольшому исследованию сегодня популярность Джексона имеет внутренние причины. В наших будущих проектах мы в основном продвигаем Джексона и постепенно ликвидируем Fastjson.

Последняя документация по сухим товарам технологии Java: [Завершение основных знаний о Java], охватывающая 29 основных технологий Java, JVM, Redis, Nginx, Spring Boot, Spring Cloud, Kafka, параллельное программирование, Tomcat, MyBatis, вопросы об интервью BAT, Java Техническая проработка видео и др. Вперед + следуй, добавь мне VX [tkzl6666], чтобы получить бесплатный способ получить его.

Овладев этими баллами знаний, вы можете получить много внимания среди кандидатов во время собеседования, критически набрав 9999 баллов. Возможности зарезервированы для тех, кто подготовлен, и только при достаточной подготовке можно выделиться среди кандидатов.


рекомендация

отblog.51cto.com/14480698/2488386