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

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...


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

      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... :)

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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://622795]
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
Find Nodes?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)

    Results (54 votes). Check out past polls.