All Projects → Kudo → react-native-js-benchmark

Kudo / react-native-js-benchmark

Licence: MIT license
JavaScript Engine Benchmark for React Native

Programming Languages

java
68154 projects - #9 most used programming language
python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Starlark
911 projects

Projects that are alternatives of or similar to react-native-js-benchmark

browser-exploitation
A collection of curated resources and CVEs I use for research.
Stars: ✭ 71 (-29%)
Mutual labels:  v8, javascriptcore
all-about-node
All about Node.js
Stars: ✭ 16 (-84%)
Mutual labels:  v8
V8 Natives
Access v8 Engine Natives easily in Chrome & Node
Stars: ✭ 161 (+61%)
Mutual labels:  v8
bytenode
A minimalist bytecode compiler for Node.js
Stars: ✭ 2,042 (+1942%)
Mutual labels:  v8
V8
✔️8️⃣ 分析V8和周边技术、并且着手代码的优化
Stars: ✭ 179 (+79%)
Mutual labels:  v8
zig-v8
Simple V8 builds with C and Zig bindings.
Stars: ✭ 87 (-13%)
Mutual labels:  v8
Jsc
A JavaScript compiler written in TypeScript targeting C++/V8
Stars: ✭ 135 (+35%)
Mutual labels:  v8
OldCEF4Delphi
OldCEF4Delphi is an open source project to embed Chromium-based browsers in applications made with Delphi.
Stars: ✭ 55 (-45%)
Mutual labels:  v8
JavaScriptCore-usage
JavaScriptCore-C接口详解,以及基本的使用方法
Stars: ✭ 21 (-79%)
Mutual labels:  javascriptcore
Electron
Build cross-platform desktop apps with JavaScript, HTML, and CSS
Stars: ✭ 99,383 (+99283%)
Mutual labels:  v8
Examples
A collection of examples of Neon
Stars: ✭ 202 (+102%)
Mutual labels:  v8
Easy Monitor
企业级 Node.js 应用性能监控与线上故障定位解决方案
Stars: ✭ 2,451 (+2351%)
Mutual labels:  v8
XMLHTTPRequest
An implementation of the JavaScript XMLHTTPRequest object to extend JavaScriptCore.
Stars: ✭ 63 (-37%)
Mutual labels:  javascriptcore
Discovery
Discoveries on Sustainable Loading research
Stars: ✭ 174 (+74%)
Mutual labels:  v8
docker-v8
Docker V8 Image
Stars: ✭ 26 (-74%)
Mutual labels:  v8
Core
Server core components which are a part of ONLYOFFICE Document Server
Stars: ✭ 152 (+52%)
Mutual labels:  v8
Php V8
PHP extension for V8 JavaScript engine
Stars: ✭ 197 (+97%)
Mutual labels:  v8
WebView4Delphi
WebView4Delphi is an open source project created by Salvador Díaz Fau to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC for Windows.
Stars: ✭ 157 (+57%)
Mutual labels:  v8
v8-android-buildscripts
V8 build scripts for React Native Android
Stars: ✭ 63 (-37%)
Mutual labels:  v8
node-mini
Mini Node.js runtime built on V8
Stars: ✭ 24 (-76%)
Mutual labels:  v8

JavaScript Engine Benchmark for React Native

Benchmark Results

RN 0.62.2, JSC 250230, V8 8.0, Hermes 0.4.1

RN 0.60.3, JSC 245459, V8 7.5.1, Hermes 0.1.0

These benchmarks ran on Samsung Galaxy Note 5

Benchmarks

React Rendering

  • RenderComponentThroughput

    The series of test cases aim to measure how many React component could be rendered within some intervals.

    • RenderComponentThroughput 10s
    • RenderComponentThroughput 60s
    • RenderComponentThroughput 180s

    The reason that have different interval is that to assume JIT will start to work after longer repetitive executions.

    Higher result is better

TTI (Time-To-Interaction)

The series of test cases aim to measure how long JS engine parse and evaluate the scripts. TTI time is from the content_appear_view_time - before_start_ReactInstanceManager_time. In different test cases, we try to generate different size of JS bundle and compare if size matters.

  • TTI ~3 MiB bundle
  • TTI ~10 MiB bundle
  • TTI ~15 MiB bundle

APK Size

Simply the comparion of library binary size and final APK size.

How to Run the Benchmark

Prerequisites:

  • macOS 10.14 (Other macOS versions or Linux might be supported, but I don't verify that)
  • Python 3
  • Node 8+

Simply to run

python start.py -a

Disclaimer

This project is specific to measure JS engine performance for React Native. It is not designated to do generic JS engine comparison.

For example, on React Native Android, we don't enable all JIT tiers on JavaScriptCore. On V8, I am currently trying to use the JIT-less mode. What I am trying to do is balancing between good enough performance, low memory usage, and small binary size. That is why to disable JIT sometimes.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].