[Groonga-commit] droonga/drnbench at ce739a4 [master] Shrink memory usage

アーカイブの一覧に戻る

YUKI Hiroshi null+****@clear*****
Fri Nov 28 15:51:01 JST 2014


YUKI Hiroshi	2014-11-28 15:51:01 +0900 (Fri, 28 Nov 2014)

  New Revision: ce739a48363b946df423dc00d3c433cf6502359e
  https://github.com/droonga/drnbench/commit/ce739a48363b946df423dc00d3c433cf6502359e

  Message:
    Shrink memory usage

  Modified files:
    lib/drnbench/request-response/runner.rb

  Modified: lib/drnbench/request-response/runner.rb (+8 -10)
===================================================================
--- lib/drnbench/request-response/runner.rb    2014-11-28 15:29:46 +0900 (80d20c6)
+++ lib/drnbench/request-response/runner.rb    2014-11-28 15:51:01 +0900 (03558bd)
@@ -43,7 +43,7 @@ module Drnbench
       end
 
       def pop_request
-        @requests_queue.pop
+        @requests.pop
       end
 
       def push_result(result)
@@ -51,15 +51,11 @@ module Drnbench
       end
 
       def empty?
-        @requests_queue.empty?
+        @requests.empty?
       end
 
       private
       def process_requests
-        @requests_queue = Queue.new
-        @requests.each do |request|
-          @requests_queue.push(request)
-        end
         @result = Result.new(:n_clients => @n_clients,
                              :duration => @config.duration,
                              :n_fast_requests => @config.n_fast_requests,
@@ -90,9 +86,9 @@ module Drnbench
 
         # Prepare request queue for child process at first
         # to reduce needless inter-process communications (IPC) while running!
-        child_process_requests_queue = Queue.new
-        n_requests_per_process.times.each do |index|
-          child_process_requests_queue.push(@requests_queue.pop)
+        requests_queue = Queue.new
+        @requests.slice!(0..n_requests_per_process).each do |request|
+          requests_queue.push(request)
         end
 
         parent_read, child_write = IO.pipe
@@ -104,7 +100,7 @@ module Drnbench
           druby_uri = child_read.gets.chomp
           @parent = DRbObject.new_with_uri(druby_uri)
 
-          @requests_queue = child_process_requests_queue
+          @requests = requests_queue
           @result = []
 
           clients = setup_clients(n_clients)
@@ -130,6 +126,8 @@ module Drnbench
           :output => parent_write,
         }
 
+        requests_queue = nil
+
         child_read.close
         child_write.close
       end
-------------- next part --------------
HTML����������������������������...
ダウンロード 



More information about the Groonga-commit mailing list
アーカイブの一覧に戻る