[Development] QTBUG-43096 - QML instantiation performance decadence
Thiago Macieira
thiago.macieira at intel.com
Sat May 26 15:15:00 CEST 2018
On Saturday, 26 May 2018 03:38:27 -03 Jean-Michaƫl Celerier wrote:
> It's not about subclassing QQuickControl, it's about running code without a
> JIT / interpreter. Even if the cost in startup time and performance is
> minimal, it is not as fast as raw C++ code - and there's nothing wrong with
> wanting Qt to run on a lightbulb... some lightbulbs today have better CPUs
> than the ones Qt was originally developed on.
I know you're making an exaggeration here for the sake of the argument, but
it's not correct.
First, Qt has considerably grown since 1.0. Just compare the size of the
downloads from Qt 1.4 (available somewhere in download.qt.io, see Paul's blog)
to 5.11. QtCore alone, today, is multiple times the size of the full Qt of
back then.
Second, no, Qt has never run on a CPU as tiny as you can find today on
microcontrollers being deployed for IoT today. Those are still measured in
tens of kilobytes of RAM with maybe a hundred kilobyte of flash storage. The
only indicator that is comparable to the mainstay computers of 20 years ago is
the clock: the microcontrollers run at tens of MHz, which is what the original
Pentium from 1991 did (60 MHz).
You may be thinking of processors as powerful as a Raspberry Pi Zero. Trust
me, that is NOT what you would deploy to a light bulb, temperature sensor,
humidity sensor, etc. You wouldn't even find that on a controller device with
a simple screen, like a thermostat similar to the Google Nest: a system like
you find on routers today (8-32 MB of flash storage, 32-128 MB of RAM, a CPU
running at 200-600 MHz) more than suffices.
Qt *could* run at the higher end of those, with a lot of compromises to make
it fit. Which is why I don't think Qt has a role to play in these types of
devices. Instead, Qt is far more likely to play in the industrial segment
where devices need complex Human Machine Interfaces (HMI) and monitoring
capabilities. Devices are also far more costly, since they aren't going for
mass-market strategies.
Finally, there's one more segment Qt could play, but it doesn't exist yet:
microservices. If we start seeing controllers like I described replaced by a
bigger device capable of installing and running multiple services,
configurable by the user, then some of those could be Qt. Those microservices
are likely to simply be Linux containers, so you should be expecting the host
device to be like a Raspberry Pi or a low-end Intel Atom CPU with 1 GB of RAM
or so.
[It goes without saying that Qt could be used for digital signage, but it's a
stretch to call those IoT]
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Development
mailing list