[Lazarus] Threads and Libraries (dll and so)

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Wed Feb 5 11:40:10 CET 2014


Michael Schnell wrote:
> On 02/04/2014 04:02 PM, Reimar Grabowski wrote:
>> You can talk to the GPU from different threads (with a little 
>> overhead) but you actually gain nothing, because of how the drivers work.
> Very wrong, IMHO.
> 
> There is a lot to do for the CPU between the user programmer's code 
> calls an Language RTL- (LCL-) or Operating System (Widget Set-, 
> Windowing-System-, X-) API and the point where the driver is called. 
> Multithreading this code will speed up things a lot on a multicore 
> engine. (And the user programmer can't do anything to that but just 
> define the threads and do the calls within them ... or - as my 
> colleagues did - split up the application in multiple programs.)

I think a realistic question is how close can multiple threads get to a 
form without fouling up the LCL or widget set.

If it were possible- and I mean provably possible here, not "works most 
of the time"- for a background thread to prepare the graphical rendition 
of an object (or possibly something like a TFrame) with the main thread 
marshalling the GUI then there might be a useful performance gain.

But the LCL isn't in a position to try to hack around underlying 
limitations of the widget set and X.

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list