Open Bug 1245279 Opened 8 years ago Updated 1 year ago

[meta] Various tests in Speedometer seem to spend quite a bit time in jS

Categories

(Core :: JavaScript Engine, defect)

36 Branch
defect

Tracking

()

Tracking Status
platform-rel --- +

People

(Reporter: smaug, Unassigned)

References

(Depends on 2 open bugs, Blocks 2 open bugs)

Details

(Keywords: meta, perf, Whiteboard: [platform-rel-Frameworks][platform-rel-EmberJS])

Attachments

(1 file)

While looking at some benchmarks I'm evaluating Speedometer again.
(not sure it is a very good benchmark, seems to focus on one particular case and testing how different frameworks deal with that, but we're quite slow with it anyhow).

http://mozilla.pettay.fi/moztests/Speedometer.tar.bz2
is from https://github.com/WebKit/webkit/tree/master/PerformanceTests/Speedometer
but I modified the InteractiveRunner.html to make profiling a bit easier.
So, using InteractiveRunner.html, check EmberJS-TodoMVC and click run.
In Zoom I see most of the time spent in JS, and that is also that Gecko profiler tells.

Also BackboneJS-TodoMVC seems to spend most of the time in JS, and AngularJS-TodoMVC, and
AngularJS-TodoMVC. And React-TodoMVC is based on Gecko profiler also largely JS. I see quite a bit IonBuilder calls there.

Could someone more familiar with JS engine and JIT look at the test.
s/and AngularJS-TodoMVC, and AngularJS-TodoMVC/and AngularJS-TodoMVC/

(jQuery test has at least some parsing stuff showing up in the profile, and VanillaJS-TodoMVC, and also FlightJS-TodoMVC, although it is mostly JS, )
Could someone from JS team look at this.
Recently I've seen JS to take lots of time in benchmarks which try to be realistic, like Speedometer.
(Note, the test just tries that, but totally is not realistic.)
Flags: needinfo?(jdemooij)
In profiles of these benchmarks I see the usual suspects: CrossCompartmentWrapper stuff, IC misses, and some non-trivial mprotect overhead when attaching Ion IC stubs.

I've some serious IC redesign work planned for the coming weeks/months (starting with bug 1255352), hopefully that will make our ICs more robust and allow us to optimize more cases.

Added this to my perf TODO list, clearing the needinfo for now.
Blocks: 1245974
Flags: needinfo?(jdemooij)
jandem, any news on this?
Flags: needinfo?(jdemooij)
(In reply to Olli Pettay [:smaug] from comment #4)
> jandem, any news on this?

Not yet. Right now I'm working on modernizing our exception handling and the JSContext/JSRuntime unification. I hope to continue working on CacheIR and other IC work soon though.
Flags: needinfo?(jdemooij)
(Just CCing some folks from bug 1241091, there might be something in common here, given that Speedometer tests various JS frameworks)
See Also: → 1241091
Using Nightly 53 (20161217) on desktop this site stays in a loop. In Android Nightly it stalls and eventually pulls up "Warning: Unresponsive script.. Script: https://browserbench.org/Speedo...ower_components/react/react.js:7174"
At least EmberJS seems to spend some time in the interpreter and fun_apply.
platform-rel: --- → +
Whiteboard: [platform-rel-Frameworks][platform-rel-EmberJS]
Depends on: 1339535
Depends on: 1339758
Depends on: 1341768
Depends on: 1328140
Whiteboard: [platform-rel-Frameworks][platform-rel-EmberJS] → [qf:meta][platform-rel-Frameworks][platform-rel-EmberJS]
Depends on: 1344469
Depends on: 1346191
Depends on: 1346217
Depends on: 1346546
Depends on: 1346723
No longer depends on: 1346723
Depends on: 1347489
Depends on: 1349924
Depends on: 1355472
Depends on: 1356315
Depends on: 1364854
Depends on: 1364908
Been regularly testing speed on 2008 model laptop running Arch Linux. 
  * January on Browserbench 'Speedometer' I was maxing out at 10 runs per minute.
  * Test [on Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0 ID:20170515100238 CSet: e66dedabe582ba7b394aee4f89ed70fe389b3c46] is now running at 23.1 runs per minute.

131% speed improvement on the January test.

Keep up the amazing work folks!
Depends on: 1366263
No longer blocks: TimeToFirstPaint_FB
Depends on: 1368626
Depends on: 1369042
Depends on: 1369762
Depends on: 1370196
Depends on: 1371593
Depends on: 1372182
Depends on: 1373195
Depends on: 1373214
Depends on: 1373290
Depends on: 1373323
Depends on: 1370210
Depends on: 1368325
Depends on: 1373615
Depends on: 1313655
Depends on: 1374011
Depends on: 1374014
Depends on: 1374934
Depends on: 1375505
Depends on: 1376691
Depends on: 1376799
Depends on: 1376948
Depends on: 1376961
Depends on: 1377238
Depends on: 1377339
Depends on: 1377343
Depends on: 1382097
Depends on: 1382650
Further update since Fx55:

Same machine - 2008 model laptop running Arch Linux. 
  * January on Browserbench 'Speedometer' I was maxing out at 10 runs per minute.
  * Test 2 months ago [on Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0 ID:20170515100238 CSet: e66dedabe582ba7b394aee4f89ed70fe389b3c46] is now running at 23.1 runs per minute.
  * Test [on Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 ID:20170720100139 CSet: 0985725c848ec0cfc6f2f3c3a5aa3d71321e7620] is running at 27.9 runs per minute.

Firefox Nightly is 279% faster on my machine than it was in January of this year.
Depends on: 1382973
Depends on: 1383343
Depends on: 1384042
Depends on: 1384562
Depends on: 1385268
Depends on: 1385282
I don't understand why I'm getting a 34 on the benchmark.  My specs are high as seen below:

i7 Quad 3770K @ 5Ghz 
ASUS P8Z77-V Deluxe 
Corsair 1050W PSU 
Corsair H100iV2 CPU Cooler 
Corsair 16GB RAM 
Sapphire Nitro R9 390 8GB 
DUAL ASUS PA249Q IPS 24" LCDs 
Samsung SSD 830, 840 256GB, 2TB Seagate 
Windows 10 Pro x64 (v1703) 
AMD Crimson 17.7.2 
FIOS 1Gb/1Gb
After enabling my add-ons one by one and running the benchmark I came up with these number. No add-ons enabled resulted in a score of 97.1.

1. AutoplayStopper 0.9.8. This is the Webextensions version of Legacy FlashStopper. Lost ~ 12%

2. Zoom Page WE 5.1. Lost ~ 50%

3. UBlock Origin/webext 1.13.9b3. Lost ~ 28%. If I disable uBO only for the benchmark site I don't lose any points, I get a 97.1.

I've contacted the developers of these three add-ons letting them know of these results.
Depends on: 1386199
(In reply to Gary [:streetwolf] from comment #12)
> 3. UBlock Origin/webext 1.13.9b3. Lost ~ 28%. If I disable uBO only for the
> benchmark site I don't lose any points, I get a 97.1.

See bug 1339572 for example.

Running benchmarks with extensions installed is usually not super useful unless if you're trying to study the details of the performance impacts of those extensions.  We have some efforts ongoing about the improving the performance impact that having extensions like this installed can have over what happens inside web pages (which is part of the overhead you are seeing here) for example under bug 613498 but it's a lot of work and we need still more focus there.
Depends on: 1385953
Depends on: 1386555
Depends on: 1386646
Depends on: 1386685
Depends on: 1386700
Depends on: 1387018
Depends on: 1388014
Depends on: 1388354
Depends on: 1388388
Depends on: 1388720
Depends on: 1389159
Depends on: 1389510
Depends on: 1391639
Depends on: 1391611
Depends on: 1392530
Depends on: 1394365
Depends on: 1395900
Depends on: 1398140
Depends on: 1398578
Keywords: perf
Depends on: 1422726
Performance Impact: --- → ?
Keywords: meta
Whiteboard: [qf:meta][platform-rel-Frameworks][platform-rel-EmberJS] → [platform-rel-Frameworks][platform-rel-EmberJS]
Summary: Various tests in Speedometer seem to spend quite a bit time in jS → [meta] Various tests in Speedometer seem to spend quite a bit time in jS
Performance Impact: ? → ---
Severity: normal → S3
No longer depends on: 1388720
No longer depends on: 1374011
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: