From: Michal Fojtik <[email protected]>
Signed-off-by: Michal fojtik <[email protected]> --- server/lib/deltacloud/core_ext.rb | 1 + server/lib/deltacloud/core_ext/base.rb | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 server/lib/deltacloud/core_ext/base.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' 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 -- 1.7.12.1
