Re: ithreads and sockets

[email protected] (Elizabeth Mattijsen)
Newsgroups perl.ithreads
Message-ID <p05111b06bb77b461a644@[192.168.56.4]>
At 08:36 -0500 8/31/03, Paul Archer wrote:
>10:48am, Elizabeth Mattijsen wrote:
>  > I'm afraid these prerequisites will disqualify using Perl ithreads
>>  for your application in a production setting.  This is caused by the
>>  fact that each Perl ithread gets a _copy_ of all data-structures in
>  > each thread.
>I'm curious about this memory usage per variable, though. If you don't share
>a variable, then that data shouldn't be copied from one thread to another,
>right? I mean, if one thread has a huge array, for example, then that
>shouldn't affect any other threads (or their memory usage) as long as the
>array isn't shared?

Nope.  Wrong.  The current Perl ithreads implementation copies 
everything data to each thread.  Yes, I know it sucks, but that's the 
way it is right now.  You can find some examples in a recent Perl 
Monks meditation: http://www.perlmonks.org/index.pl?node_id=288022 .


>Also, what about the shared variables in 5005threads? Was that the same
>copy-per-thread, or did 5005threads do things differently?

5.005 threads didn't copy anything, but made everything shared.  Even 
things you wanted private.  And it was never production ready.


>  > If you still want to use Perl ithreads, and are not worried about
>>  performance per se, you might want to have a look at the forks.pm
>>  module I wrote.  It basically has the same interface as Perl
>>  ithreads, but uses fork() to start threads (hence its name).  It also
>  > uses a TCP connection for each thread that has shared variables, so
>  > that may turn into a lot of sockets in your case.
>I'm curious about why you used TCP connections instead of Unix sockets. Was
>that to make it Windows compatible, or for some other reason? I understand
>Unix sockets are typically a good bit more efficient that TCP sockets on a
>local machine.

Primarily because I didn't figure it out how to use Unix sockets 
reliably from Perl.  I'm accepting patches  ;-)


Liz
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.