Comments (14)
We try DFG_JIT on our project. Synthetic octane tests show 2 times performance improvement.
Though that doesn't have any impact on the application performance. So we decided to switch back to the original JSC as startup became visible longer after this change.
Also from my experience of work with UWP on the desktop where chakra shows 30k octane though perceptional application performance is the same.
If you having problems with performance on react-native you'd better review your data flow through the bridge rather than spending time on optimization of js engine.
from android-jsc.
We're running with the JIT enabled, but DFG and FTL JITs disabled. I'm running experiments now with DFG/FTL enabled, initial results aren't showing any perf improvements in feed rendering but I'm going to double check tomorrow.
from android-jsc.
Ok thanks. FTL seems like it could help because RN apps are longer-running than most mobile webpages. Just a guess.
from android-jsc.
Yeah, that's true. I'm testing just for the initial renders of feed since that's the metric most important to us, but it'd also be great to do a long-running-app test. The cost for DFG+FTL seems to be ~.5MB extra binary size.
from android-jsc.
As @andrews said: JIT is enabled, we don't use DFG and FTL. Closing this as I ensured that it is a while ago.
BTW: ~.5MB is uncompressed for single CPU arch? or for x86+armv7?
According to http://trac.webkit.org/wiki/JavaScriptCore DFG kicks of after 60 calls for methods. For perf tests we can just have 60 warmup runs to ensure that all the methods are called at least 60 times
from android-jsc.
I think we should actually keep this open to make sure we explore DFG/FTL under longer-running conditions.
from android-jsc.
@kmagiera Thanks for the verification. If you gather data about performance with the DFG and FTL (1000 runs I believe) I would be interested in seeing it. I expect there are some hot code paths inside of libraries like Animated that will run over 1000 times that could benefit from specialization.
(Updated this issue description since the topic changed a bit.)
from android-jsc.
Thanks James!
(An important thing I already noticed in my investigation is that there isn't any noticeable negative effect before those JITs kick in.)
from android-jsc.
One of the engineers who works on WebKit says about the different JIT modes: "When verifying perf, make sure they really run. FTL only runs if it can successfully load LLVM." https://twitter.com/awfulben/status/647556134383947776
The docs say, "Your mileage may vary, though, since currently only Mac and iOS is supported by the FTL JIT. " https://trac.webkit.org/wiki/FTLJIT
So it sounds like we might not be able to enable FTL.
from android-jsc.
That link to trac is 14months old. We managed to compile JSC with FTL JIT, would be good to actually verify it runs
from android-jsc.
You can't just enable FTL as it's only supported for 64 bit code.
It's not true for most of android devices.
from android-jsc.
Now B3 JIT compiler was introduced. possible to upgrade JavaScriptCore?
from android-jsc.
I think it's possible.
I just enabled the DFG_JIT
on synthetic octane test it shows 2x improvement in pure JS speed.
from android-jsc.
May I wonder if there is any progress about it?
from android-jsc.
Related Issues (20)
- jsc:r174650 has "duplicate entry: javax/annotation/Nullable.class" when react android 0.15.0 HOT 8
- jsc:r174650 has "duplicate entry: javax/annotation/Nullable.class" when react android 0.15.0 HOT 1
- when I build jsc, got a compile Error in icu/common/brkiter.cpp HOT 4
- Can we support android armeabi HOT 13
- http:// link to Webkit doesn't work anymore HOT 1
- Why not support armeabi? HOT 3
- I need a usage example.
- No update since 2015? HOT 2
- No CI. Does not build on latest NDK/BUCK HOT 2
- How to make a debug build?
- "Unrecognized archive format" error when running fetch_sources.sh HOT 1
- fetch_sources.sh fails on extract of WebKit tar
- when do you update this android-jsc to support es6?
- license problem HOT 1
- jsc
- libjsc.so + 0x612a64
- Support more android abis (arm64, x86_64) HOT 10
- Build Failed: Couldn't get dependency '//jsc:jscoffsetextractor#android-x86,static' HOT 7
- how can i exclude x86 .so by edit ndk gradle or any config when i use React Native for Android,thks HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from android-jsc.