Site icon AppTractor

Flutter против React Native — тест производительности

Когда речь заходит о разработке мобильных приложений, выбор между Flutter и React Native часто упирается в соображения производительности. Хотя у обоих фреймворков есть свои сторонники, для многих из нас важны реальные результаты бенчмарков.

Мы были удивлены, увидев очень мало сравнительных бенчмарков для Flutter и React Native, да и те были довольно старыми. Поэтому я провел тщательное сравнение текущих версий Flutter и React Native с точки зрения размера приложений, использования памяти и процессора в текущих версиях. Результаты получились, мягко говоря, интересными и удивительными.

Приложения для бенчмарков

В бенчмарк попали три типа приложений:

  1. Большой список из 1001 элемента: Каждый элемент включает статичное изображение и бесконечно вращающееся изображение.
  2. Массовые анимации изображений: 200 изображений одновременно вращаются, выцветают и масштабируются.
  3. Массовые анимации Lottie: 36 анимаций Lottie, отображаемых на одном экране.

Методология теста

Используемые версии фреймворка :

Производительность просмотра списка

Flutter:

React Native:

Flutter прокручивался плавно, без скачков памяти и процессора во время прокрутки, в то время как React Native демонстрировал падения кадров и значительные скачки в нагрузке на процессор и память.

Массовые анимации изображений

Flutter:

React Native:

Оба фреймворка работали с похожей частотой кадров, но в React Native наблюдалось падение FPS при перезапуске анимации и значительно большее использование памяти.

Массовые анимации Lottie

Flutter:

React Native:

Интересно, что в этом тесте React Native превзошел Flutter по FPS, но при этом использовал больше процессора и памяти.

Дополнение: В новости о недавнем релизе Flutter 3.22 указано, что для движка рендеринга Impeller производительность рендеринга Lottie значительно улучшилась. В этом бенчмарке используется Flutter 3.19.5. Мне еще предстоит провести этот бенчмарк для новой версии наAndroid.

Сравнение стартовых проектов

Мы неожиданно обнаружили, что для стартового проекта размер Apk для React Native значительно больше, чем для приложения на Flutter.

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

Обратите внимание, что время создания приложения в React Native больше, так как при создании нового проекта загружается вся библиотека react-native, в то время как Flutter SDK нужно загрузить еще до создания приложения.

Окончательный вердикт

Все бенчмарки показывают, что размеры APK у Flutter меньше, а использование процессора и памяти незначительно лучше, чем у React Native.

Источник

Exit mobile version