Mattias Gaertner wrote:
Examples where I think it could be used (if not already)
  - background parsing of units

Yes, this is planned. Some expensive parts can be done in worker

Excellent.


  - fpdoc lookups

That should be easier. This already works in several separate parts
executed on idle.

Nice.


available. The only problem is that TAsyncProcess bites the debugger
under Linux. Compile LCL and IDE with -dUseAsyncProcess. Run an
application. Close the IDE. The gui will close, but lazarus is still
running.

I probably run my applications 1% of the times via the IDE. All other uses and 
testing is by running them from a command line. I few years ago when debugging 
via the IDE really sucked, I wrote various logging methods which I got so used 
to and always works. Logging gets done via a separate thread and I can log to 
various outputs. cached logging to file, cached logging to GUI or non-cached 
logging to console (stdout).

I'll recompile tomorrow with-dUseAsyncProcess and see how it goes.


For example: An expensive function is "Find in files" which could be
multithreaded. But the bottleneck here is the memory system and the
disk, not the cpu.

That is an excellent candidate. We did some testing with a multi-threaded 
application that does CRC calculation on files, recursively through 
directories. It was one of the multi-threading entries to a Borland 
Multi-Threading competition held some years ago. We adapted the program for our 
needs and by using 2-4 threads on a multi-core system improved overall 
throughput a lot. The app did not work so well when the files were on CD-ROM 
though. :-) A major disk bottleneck, but hard drives or raid system is much 
faster.


AFAIK Florian did some tests years ago and the bottleneck was the
memory system and the disk.

I believe GCC can use threads for parallel compiling, so there must be some 
advantage. With faster hard drives or SSD drives it should make a difference - 
I guess. But yes, I understand your point regarding disk IO being slower than 
in-memory computations.


Regards,
- Graeme -

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


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to