Giter Club home page Giter Club logo

Comments (14)

dryganets avatar dryganets commented on June 11, 2024 1

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.

astreet avatar astreet commented on June 11, 2024

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.

ide avatar ide commented on June 11, 2024

Ok thanks. FTL seems like it could help because RN apps are longer-running than most mobile webpages. Just a guess.

from android-jsc.

astreet avatar astreet commented on June 11, 2024

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.

kmagiera avatar kmagiera commented on June 11, 2024

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.

astreet avatar astreet commented on June 11, 2024

I think we should actually keep this open to make sure we explore DFG/FTL under longer-running conditions.

from android-jsc.

ide avatar ide commented on June 11, 2024

@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.

astreet avatar astreet commented on June 11, 2024

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.

ide avatar ide commented on June 11, 2024

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.

kmagiera avatar kmagiera commented on June 11, 2024

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.

dryganets avatar dryganets commented on June 11, 2024

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.

glcrazier avatar glcrazier commented on June 11, 2024

Now B3 JIT compiler was introduced. possible to upgrade JavaScriptCore?

from android-jsc.

dryganets avatar dryganets commented on June 11, 2024

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.

glcrazier avatar glcrazier commented on June 11, 2024

May I wonder if there is any progress about it?

from android-jsc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.