[Development] [BB++] Now is 3.5x faster than Node.JS

Thiago Macieira thiago.macieira at intel.com
Sun Jul 23 20:48:13 CEST 2017


On Sunday, 23 July 2017 11:01:00 PDT Phil Bouchard wrote:
> > My experience with benchmarking very controlled and deterministic C++ code
> > (deterministic implies no memory allocation or deallocation) is that the
> > results vary on a system like that.
> 
> I am running it on an Intel Core i7 laptop with an ASUS motherboard and
> no I stop processes like the music player before running it.

Did you stop the email client? Did you close the browser? Maybe stopped the 
window manager too? You should also disconnect from the network, in case some 
packets arrive at the wrong time, disable turbo boost, lock the CPU into 
performance mode and disable all but one CPU.

> > That's another example of assigning blame without proof. You may be
> > completely right and you're very likely partially right. But you need to
> > stop blaming GC for everything. We don't know how much it's at fault for,
> > not without evidence.
> 
> You can find documentation on this all over the place:
> https://www.quora.com/Why-is-the-iPhones-1-GB-RAM-touted-to-be-able-to-compe
> te-with-more-than-2-GB-RAM-of-Android-phones/answers/7061202

That's not "documentation". It's not comparing apples to apples: it's 
comparing two different applications, written for two different OSes, with two 
different frameworks and in two different languages. There's more than just 
the GC at work here.

And did you read the link you posted? It's saying that with enough RAM, the 
impact of GC is small enough to be ignored.

> >> It's obvious developers aren't perfect either and the more complex the
> >> app is then the more likely there will be a leak. With Root.Ptr it's all
> >> handled implicitly.
> > 
> > Except for the part that developers need to use root.ptr properly. As
> > you've just written, developers aren't perfect either, so they will make
> > mistakes. So maybe it's better to have a slightly inferior solution
> > performance-wise that works in many more cases where the developers are
> > making mistakes than a perfect solution that requires perfect developers.
> 
> Developer won't need to bother about Root.Ptr because I already wrote a
> parser to add the necessary node_proxies and metadata.

The developers in question here are not the application writers, but the 
framework developers. You're assuming they/you won't make mistakes and that is 
not a valid assumption to make.

> And did I say errors are reported at compile-time? In QML/Javascript
> everything is reported at run-time; sometimes in the widget itself,
> sometimes on the console and sometimes none is reported and it just
> doesn't work!

Are you comparing that to the precompiled QML?

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Development mailing list