Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: CPU Load generator for Windows?

by RMGir (Prior)
on Jun 22, 2007 at 14:40 UTC ( #622795=note: print w/replies, xml ) Need Help??


in reply to CPU Load generator for Windows?

I'm not sure what you're shooting for.

Writing a perl script that will use 100% of 1 cpu is pretty simple:

perl -e'while(1) {$x++}'
pretty well does the job.

If you also need to exercise memory and paging, you could have something like:

perl -e'$x=" " x 1024 x 1024 x 256; while(1) { $x=~s/ /./g; $x=~s/./ / +g;}'
I haven't tested that last one, but I'll bet it'll be nicely anti-social :)

Are you shooting for something more precise, like 30% cpu load? That would be much harder to fine-tune...


Mike

Replies are listed 'Best First'.
Re^2: CPU Load generator for Windows?
by Limbic~Region (Chancellor) on Jun 22, 2007 at 15:36 UTC
      Limbic~Region,

      No, I hadn't.

      But I'm glad you pointed me to them, they're quite lovely!

      Of course, if some poor sap runs Procs as root, or on a system without process limits, his day's going to be ruined... :)


      Mike
Re^2: CPU Load generator for Windows?
by ww (Archbishop) on Jun 22, 2007 at 17:14 UTC

    Since we're talking Windows here, the OP needs to use double quotes in the first case, and to reverse single-for-double and vice-versa in the second...

    perl -e "while(1) {$x++}"

    perl -e "$x='' x 1024 x 1024 x 256; while(1) { $x=~s/ /./g; $x=~s/./ /g;}"

    Interestingly, at least to me, in the second case I saw the handle count rise rapidly (well, over the course of a few tens of seconds), with "Available" physical memory actually increasing (mostly, there were a few small dips). That seems counterintutitive.

      If the intent is to create a large string, '' x 1024 x 1024 x 256 isn't working:

      C:\test>perl -wle "$x='' x 1024 x 1024 x 256; print length( $x )" 0

      A null string isn't the same a string containing a null. And 0 * anything is 0. Try

      C:\test>perl -wle "$x = chr(0) x 1024 x 1024 x 256; print length( $x ) +" 268435456

      Personally, I find even that a little dubious in that, due to precedence, it creates the final string in 3 stages rather than 1. I think that

      C:\test>perl -wle "$x = chr(0) x (1024* 1024 * 256); print length( $x +);<>" 268435456

      is 'better', though it has little effect on the outcome.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (2)
As of 2021-06-13 07:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)












    Results (54 votes). Check out past polls.

    Notices?