[Lazarus] Threads and Libraries (dll and so)
Michael Van Canneyt
michael at freepascal.org
Tue Feb 4 14:40:21 CET 2014
On Tue, 4 Feb 2014, Michael Schnell wrote:
> On 02/04/2014 01:39 PM, Sven Barth wrote:
>> Upon creation of the QApplication class it remembers the thread ID and
>> every GUI widget is checked that it is owned by this thread ID as well.
>> Certain events like rendering are also checked for the thread ID.
>>
> While I don't exactly see the point (as each thread of the application will
> have it's own thread id and thus should be handled as "unrelated"), I am sure
> that you do know what you say, denying the possibility in question.
>
> Anyway this is really bad news regarding the performance of KDE, QT etc (and
> consequence the LCL) on multiprocessor systems:
>
> Doing multiple automatically updated widgets will perform a lot faster when
> done in multiple applications than in a single one. (We did check this with
> Delphi/Windows: same here.)
Sorry, but I think you are totally misdesigning your system.
The GUI is for use by humans. That means that there is no point whatsoever
in updating the GUI more than 10 times per second: the human eye cannot
process information faster than that, let alone that the brain can grasp
the *meaning* of what the eye has seen in such a short time.
Designating 1 GUI thread to update the entire screen 10 times per second should
therefor
a) be entirely possible with any GUI widgetset.
b) be complete overkill for any human operator.
if I play a video at full HD, 1 thread handles the screen display. It works just fine,
and probable needs to transfer a lot more data to the screen than any normal program
would have to transfer. It would be very surprising if you would not be able to show
some statistical data (or whatever) on screen with the same hardware.
Michael.
More information about the Lazarus
mailing list