Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re^3: Why this code is so slow if run in thread? (create)

by tye (Sage)
on Dec 11, 2016 at 19:24 UTC ( #1177616=note: print w/replies, xml ) Need Help??

in reply to Re^2: Why this code is so slow if run in thread?
in thread Why this code is so slow if run in thread?

With Perl threads, the thing that is usually the slowest is creating a thread. This is because creating a Perl thread requires cloning every data structure you have created. So I would first determine if that is where the time is being spent. You can report that by comparing the time at the start of the routine running against the time just before you ask for a thread to be created.

If that is indeed where most of the time is spent, then you should do what just about anybody who has gotten good at using Perl threads does: Create your threads very early and just ship work to them, usually via a thread queue such as Thread::Queue.

Though, looking at your code, I don't see where you would have a large data structure that should not have been destroyed before you create the thread. But, that data could be something cached (perhaps by accident) in some module you have pulled in, for example.

Update: Or it could be time spent destroying the second interpreter instance.

- tye        

  • Comment on Re^3: Why this code is so slow if run in thread? (create)

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1177616]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2022-08-15 12:42 GMT
Find Nodes?
    Voting Booth?

    No recent polls found