[Lazarus] Threads in Lazarus code base
Mattias Gaertner
nc-gaertnma at netcologne.de
Wed Sep 15 18:44:19 CEST 2010
On Wed, 15 Sep 2010 11:49:42 -0300
Luiz Americo Pereira Camara <luizmed at oi.com.br> wrote:
> Mattias Gaertner escreveu:
> > *many IDE parts will become slower (once you start a thread the RTL
> > uses critical sections and especially string handling become much
> > slower).
>
> If i understand correctly all program will suffer the performance hit,
> not only the "threaded" part, right?
Correct. As long as another thread runs. When the thread stops all
returns to "normal".
> Do you have an idea of how slower string handling would be?
That heavily depends on the string operations you do. I saw two
threads running slower than single threaded.
> I'm asking this because i'm planning to make a client of a REST service
> through http and i choose Synapse to do the communication.
>
> Since Synapse recommends to use thread to avoid GUI freeze, i planned to
> use a thread for getting the data.
In this case you have not much choice.
> At the other side this REST server uses JSON as the data format.
>
> If the thread really affects badly the string handling (and parsing JSON
> does a lot of it) i would rethink the strategy and go for an event
> based http client like lnet.
For performance relevant parts you should use PChar instead of strings.
Even when doing single threaded.
I mentioned the speed difference because this thread is about using
multi threading in the IDE and what advantages/disadvantages this
might have.
The IDE is special in many ways, so don't take the comments of this
thread as a general advice for your own programs.
Mattias
More information about the Lazarus
mailing list