brunch

You can make anything
by writing

C.S.Lewis

by 이종우 Peter Lee Jun 05. 2020

Flutter vs Native vs React 성능

3가지 성능 비교

원본 URL : https://medium.com/swlh/flutter-vs-native-vs-react-native-examining-performance-31338f081980 




오늘날 모바일 앱을 구축하는 가장 인기있는 솔루션은 React Native 또는 Flutter를 사용하는 네이티브 또는 크로스 플랫폼 방식입니다. 


 네이티브 개발은 AAA 기술 솔루션으로 자리 잡고 있지만, 크로스 플랫폼 앱이 출시 될 시장 공간을 창출하는 데는 몇 가지 단점이 있습니다. 일반적으로 네이티브 개발에는 프로젝트를 완수하기 위해 개발 팀의 더 많은 노력이 필요하지만 까다로운 것을 완전히 제어 할 수 있습니다. 후드 아래 기술적 인 것들. 반면, 크로스 플랫폼을 선택하면 공통 코드 기반으로 인해 개발 프로세스 속도가 크게 빨라지고 프로젝트 지원이 쉬워지고 개발 비용이 절감됩니다.


크로스 플랫폼 개발에 비해 네이티브의 또 다른 장점은 성능입니다. 기술 분야에서는 "크로스 플랫폼 앱 속도가 느립니다"라는 고정 관념이 발생할 수 있습니다. 우리는 그것이 사실인지, 크로스 플랫폼 앱이 네이티브보다 느리게 확장되는지 테스트하기로 결정했습니다.




다양한 유형의 성능이 있으며 그중 일부는 다음과 같습니다.



전화 API와 상호 작용 (사진, 파일 시스템 액세스, GPS 위치 가져 오기 등)


렌더링 속도 (애니메이션 부드러움, UI가 변경되는 동안 초당 프레임 또는 시간에 따라 발생하는 일부 UI 효과)


비즈니스 로직 (수학적 계산 및 메모리 조작 속도.이 유형의 성능은 복잡한 비즈니스 로직이있는 앱에 가장 중요합니다).



이 기사에서는 네이티브 및 크로스 플랫폼 방식으로 구현 된 숫자 Pi의 수학적 계산을 보여주는 성능 테스트 결과를 공유합니다.




iOS 용 CPU 집약적 테스트 (Gauss–Legendre 알고리즘)


iOS 용 메모리 집약 테스트 (Gauss–Legendre 알고리즘)


iOS


Objective-C는 iOS 개발을위한 최고의 프로그래밍 언어입니다. 스위프트는 Objective C에 비해 1.7 배 느립니다.


놀라운 점  : Flutter는 Swift보다 약간 빠릅니다 (15 %).


React Native는 Objective C보다 20 배 느립니다.



iOS 용 CPU 집약적 테스트 (Borwein 알고리즘)


iOS 용 CPU 집약적 테스트 (Borwein 알고리즘)



iOS


Objective C는 iOS 앱 개발에 가장 적합한 옵션입니다. 스위프트는 Objective-C에 비해 1.9 배 느립니다.


Flutter는 Swift보다 5 배 느립니다.


React Native 버전은 Swift 버전보다 15 배 이상 느립니다.



Android 용 CPU 집약 테스트 (Gauss–Legendre 알고리즘)


Android 용 메모리 집약 테스트 (Gauss–Legendre 알고리즘)


Android


Java와 Kotlin은 유사한 성능 표시를 가지며 Android 개발을 위한 최상의 옵션입니다.


Flutter는 네이티브보다 약 20 % 느립니다.


React Native는 native보다 약 15 배 느립니다.



Android 용 CPU 집약적 테스트 (Borwein 알고리즘)


Android 용 CPU 집약적 테스트 (Borwein 알고리즘)


Android 


Java와 Kotlin은 유사한 성능 표시를 가지며 Android 개발을위한 최상의 옵션입니다.


네이티브는 Flutter보다 2 배 빠릅니다.


반응 네이티브는 네이티브보다 약 6 배 느립니다.



기술적 세부 사항:

모든 테스트는 실제 물리적 장치 (Android 9.0에서 실행되는 iPhone 6s IOS 13.2.3 및 Xiaomi Redmi Note 5)에서 수행되었습니다.

릴리스 빌드에서 성능을 측정했습니다. 경우에 따라 디버그 빌드가 릴리스 빌드보다 상당히 느려질 수 있습니다.

모든 테스트는 여러 번 실행되었으며 평균 결과가 계산되었습니다.

Pi 수를 계산하는 Gauss–Legendre & Borwein 알고리즘이 사용되었습니다. Pi 수는 천만 자릿수의 정밀도로 100 번 계산되었습니다.

Gauss–Legendre는 Borwein에 비해 메모리를 많이 사용하는 알고리즘이지만 Borwein은 CPU를 많이 사용합니다.

소스 코드 https://github.com/nazarcybulskij/Mobile_Bechmarks_


주요 테이크 아웃  

요약하면, 모든 크로스 플랫폼 앱이 느린 것은 아닙니다. 또한 Flutter 앱은 Swift 앱보다 성능이 뛰어납니다.


초고속 iOS 앱을 개발하려는 경우 Objective C 및 Flutter가 현명한 선택입니다.


로드 계산이 많은 앱의 경우 Flutter는 Android 및 iOS 앱 개발 모두에 적합한 옵션입니다.

주시기 바랍니다. inVerita http://inveritasoft.com/contact 는 당신이 개발을위한 모바일 도구의 도움에 항상 행복을 따기로 어려움을 겪고 있는지 알고.

작가의 이전글 [번역]open source 사용 DevOps 구축서
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari