From a83c6f545c440edb901e706beb2cb4e6c24b8381 Mon Sep 17 00:00:00 2001 From: Mikhail Korobov Date: Wed, 15 Jan 2014 03:24:48 +0600 Subject: [PATCH] Fix MemoryUsage extension for OS X. Fix GH-529. --- scrapy/contrib/memusage.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/scrapy/contrib/memusage.py b/scrapy/contrib/memusage.py index 98dd15027..6608632f0 100644 --- a/scrapy/contrib/memusage.py +++ b/scrapy/contrib/memusage.py @@ -3,7 +3,7 @@ MemoryUsage extension See documentation in docs/topics/extensions.rst """ - +import sys import socket from pprint import pformat from importlib import import_module @@ -16,7 +16,7 @@ from scrapy.mail import MailSender from scrapy.utils.engine import get_engine_status class MemoryUsage(object): - + def __init__(self, crawler): if not crawler.settings.getbool('MEMUSAGE_ENABLED'): raise NotConfigured @@ -41,7 +41,11 @@ class MemoryUsage(object): return cls(crawler) def get_virtual_size(self): - return self.resource.getrusage(self.resource.RUSAGE_SELF).ru_maxrss * 1024 + size = self.resource.getrusage(self.resource.RUSAGE_SELF).ru_maxrss + if sys.platform != 'darwin': + # on Mac OS X ru_maxrss is in bytes, on Linux it is in KB + size *= 1024 + return size def engine_started(self): self.crawler.stats.set_value('memusage/startup', self.get_virtual_size())