Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

renodino's scratchpad

by renodino (Curate)
on Jan 24, 2006 at 00:54 UTC ( [id://525088]=scratchpad: print w/replies, xml ) Need Help??

for BrowserUk

I gave it a whirl on WinXP SP2, 2.4GHz, 1 Gig. But I used /stack:1024,0, and modified the code:

use strict; use threads; use threads::shared; use Win32::Console; our $N = 500; our $alldone : shared = 0; sub thread { my( $con, $n) = @_; my $tid = threads->self->tid; my( $y, $x ) = ( ( $tid % 20 ) * 5, int( $tid / 20 ) ); { lock $alldone; $alldone++; } $con->WriteChar( sprintf( '%04d', $_ ), $y, $x ) for 1 .. 3999; } $N = ($ARGV[0]=~/^-N=(\d+)/) ? $1 : 500; my $con = Win32::Console->new( STD_OUTPUT_HANDLE ); $con->Cls; my @threads = (); { lock $alldone; foreach (1.. $N) { push @threads, threads->new( \&thread, $con, 0 ) or die "threads->new failed with: $^E"; print "$_\r"; } print "\n"; } $_->join for @threads;
and squeezed out 1500 (could've gone higher, still had a Gig of pagefile left, but the laptop fan was screaming from the heat!). I'll try on my dual Xeon box this weekend; and also on a major threaded app I've got that uses the threading modules I've been working on.

So does this mean the issue is actually the default stack size, rather than the TLS ? And if so, might tweaking /HEAP have a similar effect ?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2024-03-29 08:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found