You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2012/10/31 13:58:28 UTC

[2/3] git commit: Added methods to improve memory leaks debugging

Added methods to improve memory leaks debugging

Signed-off-by: Michal fojtik <mf...@redhat.com>


Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/03619cf4
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/03619cf4
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/03619cf4

Branch: refs/heads/master
Commit: 03619cf4ea19b0cd7e8c25483d4ec858fbdbfc61
Parents: 16b1c28
Author: Michal Fojtik <mf...@redhat.com>
Authored: Thu Oct 18 21:38:40 2012 +0200
Committer: Michal fojtik <mf...@redhat.com>
Committed: Wed Oct 31 13:57:57 2012 +0100

----------------------------------------------------------------------
 server/lib/deltacloud/core_ext.rb      |    1 +
 server/lib/deltacloud/core_ext/base.rb |   30 +++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltacloud/blob/03619cf4/server/lib/deltacloud/core_ext.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/core_ext.rb b/server/lib/deltacloud/core_ext.rb
index 0d37343..f19d421 100644
--- a/server/lib/deltacloud/core_ext.rb
+++ b/server/lib/deltacloud/core_ext.rb
@@ -22,3 +22,4 @@ require_relative './core_ext/integer'
 require_relative './core_ext/ordered_hash'
 require_relative './core_ext/proc'
 require_relative './core_ext/string'
+require_relative './core_ext/base'

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/03619cf4/server/lib/deltacloud/core_ext/base.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/core_ext/base.rb b/server/lib/deltacloud/core_ext/base.rb
new file mode 100644
index 0000000..fbf76ab
--- /dev/null
+++ b/server/lib/deltacloud/core_ext/base.rb
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+def get_current_memory_usage
+  `ps -o rss= -p #{Process.pid}`.to_i
+end
+
+def profile_memory(&block)
+  before = get_current_memory_usage
+  file, line, _ = caller[0].split(':')
+  if block_given?
+    instance_eval(&block)
+    puts "[#{file}:#{line}: #{(get_current_memory_usage - before) / 1024} MB (consumed)]"
+  else
+    before = 0
+    puts "[#{file}:#{line}: #{(get_current_memory_usage - before) / 1024} MB (all)]"
+  end
+end