Announcement

Collapse
No announcement yet.

A Quick Benchmark Of Mozilla Firefox With WebRender Beta vs. Chrome

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Weasel
    replied
    Originally posted by Michael_S View Post
    They let anyone who wants to submit an entry in any language with or without frameworks in a pull request. So they didn't pick anything. That's why in the same selection you picked there is a C++ entry that has 1.1% the speed of the C++ leader. And these periodic contests have been going on for years, so it's not like the C++ community hasn't had time to do better.

    Now justify why the fortunes benchmark where C++ wins is the 'realistic' option and all of the ones where Java or Rust leads are not.
    Because C++ has zero overhead when used properly? And I mean that literally. Not "branch prediction is free on modern CPUs", that's not zero overhead, it adds instructions to the code, so it is some overhead. C++ can literally add zero measurable overhead. So it is literally impossible for Rust to be faster.

    Rust does add shitty checks behind your back tho, unless you use unsafe blocks. So, that's a measurable overhead. By measurable, I mean even 1 single extra byte of instruction.

    Obviously, one can write C++ with a million shitty standard library abstractions or Boost or w/e and then QQ that C++ is slower when in fact it's just his shitty use of C++ that's slower and handicapped.

    Leave a comment:


  • Monstieur
    replied
    Regarding WebRender, I got the same MotionMark score of ~330 on my MacBook (2.6 GHz i7-6700HQ, Radeon RX560) and my desktop (4.5 GHz i7-4820K, RTX 2080 Ti) after force enabling it on both.

    Leave a comment:


  • Monstieur
    replied
    Originally posted by Michael_S View Post
    While I agree completely with your point that real world GUI performance matters more than arbitrary benchmarks, my experience with Chrome on Linux doesn't match yours at all. Chrome is consistently smoother and more responsive for me on Linux. I use Firefox anyway because I trust the Mozilla Foundation (marginally) more than I trust Alphabet.

    And I'm guessing you haven't run Java in a GUI application in more than ten years. Java GUI apps sucked in the early days because the language implementation was terrible and hardware was inadequate. Minecraft doesn't drop below 50 fps on my computers, and they're all five years old or older.
    I forgot this was on Linux. I was talking about Windows, where Firefox and Edge visibly trounce Chrome & Opera in scrolling smoothness, input latency, UI perfomance (UI animations seem to be capped at 60 fps in both Chrome & Opera). This is especially visible on 144+ Hz monitors. The same holds true for Firefox and Safari on macOS as well compared to Chrome & Opera.

    Java / Android games go out of their way to avoid triggering garbage collection and inducing stutters. However regular application developers don't do this and the runtime triggers GC as usual, resulting in freezes when performing continuous UI operations. I use Eclipse, Android Studio and some other Java tools on both macOS and Windows, and the UI performance is terrible compared to Xcode and native editors on Windows (the WPF based Vistual Studio 2008+ are not among them). I mean they are utterly crushed by native applications that run at 240 fps on my 240 Hz monitor. The Java applications slow down to 10 fps under load.

    Leave a comment:


  • Michael_S
    replied
    Originally posted by Monstieur View Post
    I don't understand why anyone touts browser benchmark results to end users. A browser is a UX first product where input latency and scrolling smoothness are of paramount importance. Chrome scroll lags on all existing hardware, while other browsers are smooth. Everything else is irrelevant.

    When the user touches a Java application, it lags and stutters. That's an automatic fail. Everything else is irrelevant. Users don't care about garbage collection and other implementation details.
    While I agree completely with your point that real world GUI performance matters more than arbitrary benchmarks, my experience with Chrome on Linux doesn't match yours at all. Chrome is consistently smoother and more responsive for me on Linux. I use Firefox anyway because I trust the Mozilla Foundation (marginally) more than I trust Alphabet.

    And I'm guessing you haven't run Java in a GUI application in more than ten years. Java GUI apps sucked in the early days because the language implementation was terrible and hardware was inadequate. Minecraft doesn't drop below 50 fps on my computers, and they're all five years old or older.

    Leave a comment:


  • Michael_S
    replied
    Originally posted by Weasel View Post
    Nobody gives a shit about the crappy web frameworks they picked or who wrote them.

    I can write a bubble sort in Rust and it will perform much worse than Python using quicksort. That must be proof that Rust is slower than Python.
    They let anyone who wants to submit an entry in any language with or without frameworks in a pull request. So they didn't pick anything. That's why in the same selection you picked there is a C++ entry that has 1.1% the speed of the C++ leader. And these periodic contests have been going on for years, so it's not like the C++ community hasn't had time to do better.

    Now justify why the fortunes benchmark where C++ wins is the 'realistic' option and all of the ones where Java or Rust leads are not.

    Leave a comment:


  • Weasel
    replied
    Originally posted by Michael_S View Post
    For more real-world, compare Rust to C++ here: https://www.techempower.com/benchmar...=json&l=h79f5q
    In the six TechEmpower web server benchmarks, Rust beats C++ in JSON serialization, multiple queries, and plain text and is at 67% of the best C++ offering in single-query, is at 57.8% of the best C++ offering in fortunes, is at 94.9% of the best C++ offering in updates. Not too shabby.

    Oh, and don't tell the C++ fanboys but Java beats C++ (and Rust too) in four of the six benchmarks.
    Nobody gives a shit about the crappy web frameworks they picked or who wrote them.

    I can write a bubble sort in Rust and it will perform much worse than Python using quicksort. That must be proof that Rust is slower than Python.

    Leave a comment:


  • Weasel
    replied
    Originally posted by Michael_S View Post
    Then why not write everything in assembly? Who needs all that C and C++ nonsense overhead. Just work raw, all those those stupid failsafe automatic language checks in C++ are a waste.
    No point answering a question to someone who doesn't know the different between runtime checks and compile-time checks.

    Originally posted by Michael_S View Post
    Right?
    No.

    Nobody cares about compilation times (compile-time checks) but you.

    Originally posted by Michael_S View Post
    Every argument you can apply for C++ over Java or Rust or anything with more builtin safety features will apply to assembly over C++.
    Wrong. Most (all?) C language features have zero "protection" overhead, literally. A language can add all the features it wants, as long as the output is not affected. Literally.

    Static typing doesn't affect it in the least. You can do 1 million static casts and they won't generate even a single instruction. (sometimes casting DOES generate an extra instruction but in that case it performs an operation, a sign extension, or float<->int conversion, whatever -- if you wrote it in assembly, you'd have to do it also, it's not EXTRA POINTLESS OVERHEAD)

    C++ might have bound checks but those are in the standard library, not part of the language itself. The things that C++ adds bloat with is in stuff like dynamic_cast, since those are part of the language instead of a library.

    Nobody forces you to use the standard library. The C library is even more sane, I mean it's like a normal library with normal APIs. Nothing tied to the language.

    Leave a comment:


  • Monstieur
    replied
    Originally posted by Michael_S View Post
    Between then and now I think there have been performance regressions in Firefox and improvements in Chrome, because on the same hardware Chrome 70 demolishes Firefox 65, with or without WebRender enabled. Firefox 65 is within 10% of Chrome 70 in the Speedometer benchmark - which admittedly is probably the closest to a real usage speed test. In the MotionMark test it's 40% slower, which is disappointing because Firefox 57 beat Chrome in that one. In the others Firefox loses terribly.
    I don't understand why anyone touts browser benchmark results to end users. A browser is a UX first product where input latency and scrolling smoothness are of paramount importance. Chrome scroll lags on all existing hardware, while other browsers are smooth. Everything else is irrelevant.

    Originally posted by Michael_S View Post
    Oh, and don't tell the C++ fanboys but Java beats C++ (and Rust too) in four of the six benchmarks.
    When the user touches a Java application, it lags and stutters. That's an automatic fail. Everything else is irrelevant. Users don't care about garbage collection and other implementation details.

    Leave a comment:


  • Michael_S
    replied
    Originally posted by msotirov View Post
    Whatever, that doesn't change the fact that Rust is comparable in speed to C/C++ and sometimes faster. I'm not asking you to take my word, just do yourself a favor and google some benchmarks like this one or this one.
    For more real-world, compare Rust to C++ here: https://www.techempower.com/benchmar...=json&l=h79f5q
    In the six TechEmpower web server benchmarks, Rust beats C++ in JSON serialization, multiple queries, and plain text and is at 67% of the best C++ offering in single-query, is at 57.8% of the best C++ offering in fortunes, is at 94.9% of the best C++ offering in updates. Not too shabby.

    Oh, and don't tell the C++ fanboys but Java beats C++ (and Rust too) in four of the six benchmarks.

    Leave a comment:


  • Michael_S
    replied
    I used the four performance benchmarks at browserbench.org to compare Firefox 57 (their big speed boost release) with whatever version of Chrome was out at the time, and Firefox did really well. It was within 20% of Chrome on two of the benchmarks, lost badly in a third, and won big in the fourth. Unfortunately I didn't record the numbers anywhere permanent and I'm too lazy to load up Chrome 63 (or whatever it was) and Firefox 57 to measure again.

    Between then and now I think there have been performance regressions in Firefox and improvements in Chrome, because on the same hardware Chrome 70 demolishes Firefox 65, with or without WebRender enabled. Firefox 65 is within 10% of Chrome 70 in the Speedometer benchmark - which admittedly is probably the closest to a real usage speed test. In the MotionMark test it's 40% slower, which is disappointing because Firefox 57 beat Chrome in that one. In the others Firefox loses terribly.

    Originally posted by Weasel View Post
    Yes, on average software devs are much more incompetent than any other industry -- and that is because they are sheltered by idiots who bring up "best practices" and don't do proper audits and so on. People learn from mistakes. Shelter them with stupid failsafe automatic language checks, and they'll never learn.
    Then why not write everything in assembly? Who needs all that C and C++ nonsense overhead. Just work raw, all those those stupid failsafe automatic language checks in C++ are a waste.

    Right?

    Every argument you can apply for C++ over Java or Rust or anything with more builtin safety features will apply to assembly over C++.

    Leave a comment:

Working...
X