README in forkoff-0.0.0 vs README in forkoff-0.0.1

- old
+ new

@@ -16,11 +16,11 @@ DESCRIPTION forkoff works for any enumerable object, iterating a code block to run in a child process and collecting the results. forkoff can limit the number of - child processes which is, by default, 8. + child processes which is, by default, 2. SAMPLES <========< samples/a.rb >========> @@ -35,33 +35,31 @@ %w( hey you ).forkoff!{|word| puts "#{ word } from #{ Process.pid }"} ~ > ruby samples/a.rb - hey from 3239 - you from 3240 + hey from 19511 + you from 19512 <========< samples/b.rb >========> ~ > cat samples/b.rb # - # for example, this takes only 1 second or so to complete + # for example, this takes only 4 seconds or so to complete (8 iterations + # running in two processes = twice as fast) # require 'forkoff' a = Time.now.to_f results = (0..7).forkoff do |i| - sleep 1 - i ** 2 - end b = Time.now.to_f elapsed = b - a @@ -69,34 +67,34 @@ puts "elapsed: #{ elapsed }" puts "results: #{ results.inspect }" ~ > ruby samples/b.rb - elapsed: 1.07044386863708 + elapsed: 4.19796895980835 results: [0, 1, 4, 9, 16, 25, 36, 49] <========< samples/c.rb >========> ~ > cat samples/c.rb # # forkoff does *NOT* spawn processes in batches, waiting for each batch to # complete. rather, it keeps a certain number of processes busy until all - # results have been gathered. in otherwords the following will ensure that 2 + # results have been gathered. in otherwords the following will ensure that 3 # processes are running at all times, until the list is complete. note that - # the following will take about 2 seconds to run (2 sets of 2 @ 1 second). + # the following will take about 3 seconds to run (3 sets of 3 @ 1 second). # require 'forkoff' pid = Process.pid a = Time.now.to_f pstrees = - %w( a b c d ).forkoff! :processes => 2 do |letter| + %w( a b c d e f g h i ).forkoff! :processes => 3 do |letter| sleep 1 { letter => ` pstree -l 2 #{ pid } ` } end @@ -114,33 +112,72 @@ end ~ > ruby samples/c.rb - pid: 3254 - elapsed: 2.12998485565186 + pid: 19526 + elapsed: 3.39831399917603 --- a: | - -+- 03254 ahoward ruby -Ilib samples/c.rb - |-+- 03255 ahoward ruby -Ilib samples/c.rb - \-+- 03256 ahoward ruby -Ilib samples/c.rb + -+- 19526 ahoward ruby -Ilib samples/c.rb + |-+- 19527 ahoward ruby -Ilib samples/c.rb + |-+- 19528 ahoward ruby -Ilib samples/c.rb + \-+- 19529 ahoward ruby -Ilib samples/c.rb --- b: | - -+- 03254 ahoward ruby -Ilib samples/c.rb - |-+- 03255 ahoward ruby -Ilib samples/c.rb - \-+- 03256 ahoward ruby -Ilib samples/c.rb + -+- 19526 ahoward ruby -Ilib samples/c.rb + |-+- 19527 ahoward ruby -Ilib samples/c.rb + |-+- 19528 ahoward ruby -Ilib samples/c.rb + \-+- 19529 ahoward ruby -Ilib samples/c.rb --- c: | - -+- 03254 ahoward ruby -Ilib samples/c.rb - |-+- 03261 ahoward (ruby) - \-+- 03262 ahoward ruby -Ilib samples/c.rb + -+- 19526 ahoward ruby -Ilib samples/c.rb + |-+- 19527 ahoward (ruby) + |-+- 19528 ahoward (ruby) + \-+- 19529 ahoward ruby -Ilib samples/c.rb --- d: | - -+- 03254 ahoward ruby -Ilib samples/c.rb - |-+- 03261 ahoward ruby -Ilib samples/c.rb - \-+- 03262 ahoward ruby -Ilib samples/c.rb + -+- 19526 ahoward ruby -Ilib samples/c.rb + |-+- 19536 ahoward ruby -Ilib samples/c.rb + |-+- 19537 ahoward (ruby) + \--- 19538 ahoward ruby -Ilib samples/c.rb + + --- + e: | + -+- 19526 ahoward ruby -Ilib samples/c.rb + |-+- 19536 ahoward ruby -Ilib samples/c.rb + |-+- 19537 ahoward ruby -Ilib samples/c.rb + \--- 19538 ahoward ruby -Ilib samples/c.rb + + --- + f: | + -+- 19526 ahoward ruby -Ilib samples/c.rb + |--- 19536 ahoward (ruby) + |-+- 19538 ahoward ruby -Ilib samples/c.rb + \--- 19543 ahoward ruby -Ilib samples/c.rb + + --- + g: | + -+- 19526 ahoward ruby -Ilib samples/c.rb + |--- 19543 ahoward (ruby) + |-+- 19546 ahoward ruby -Ilib samples/c.rb + \--- 19547 ahoward ruby -Ilib samples/c.rb + + --- + h: | + -+- 19526 ahoward ruby -Ilib samples/c.rb + |-+- 19543 ahoward ruby -Ilib samples/c.rb + |--- 19546 ahoward ruby -Ilib samples/c.rb + \--- 19547 ahoward ruby -Ilib samples/c.rb + + --- + i: | + -+- 19526 ahoward ruby -Ilib samples/c.rb + |-+- 19543 ahoward ruby -Ilib samples/c.rb + |-+- 19546 ahoward ruby -Ilib samples/c.rb + \-+- 19547 ahoward ruby -Ilib samples/c.rb