[Lazarus] Default uses clause in project unit

Graeme Geldenhuys graemeg at opensoft.homeip.net
Thu Aug 27 09:08:18 CEST 2009


Mattias Gärtner wrote:
> 
> Multithreading means that all strings access need critical sections. 

So is this always the case for Windows applications? Would that mean
that applications that don't used multi-threading actually run faster
under Linux, *BSD and OS X compared to Windows?

> So adding cthreads will deccelerate your application, even if you do
>  not start any thread.

Is this in theory, or has somebody actually done some speed tests to see
by what factor the applications are slowed down? What would be a good
test to see a speed difference?


> See also 
> http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial#Units_needed_for_a_multi-threaded_application

Thanks for the link, but that wiki pages misses a vital piece of
information - and the reason for this message thread. It should include
the answer as to why Windows has multi-threading support enabled by
default, but all other platforms do not. It just says that other
non-Windows platforms are handled differently, but it doesn't say why.

Like I mentioned earlier, does that mean you cannot create a non
multi-threaded application in Windows? Also does that mean non
multi-threaded applications run faster on other platforms than on
Windows, because Windows must use critical sections for all string
access? If it's a requirement for Windows, why not for other platforms too.

Seeing the actually speed difference between enabled/disabled
multi-threading support might answer this question and maybe be a valid
reason. Is there a test suite for this speed comparison - so I can try
it out myself?


Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://opensoft.homeip.net/fpgui/





More information about the Lazarus mailing list