Author: Carl Friedrich Bolz-Tereick <[email protected]>
Branch:
Changeset: r96676:9cfdc2c91a37
Date: 2019-05-25 11:27 +0200
http://bitbucket.org/pypy/pypy/changeset/9cfdc2c91a37/
Log: merge fix-vmprof-memory-tracking
diff --git a/pypy/module/_vmprof/interp_vmprof.py
b/pypy/module/_vmprof/interp_vmprof.py
--- a/pypy/module/_vmprof/interp_vmprof.py
+++ b/pypy/module/_vmprof/interp_vmprof.py
@@ -60,11 +60,6 @@
'interval' is a float representing the sampling interval, in seconds.
Must be smaller than 1.0
"""
- w_modules = space.sys.get('modules')
- #if space.contains_w(w_modules, space.newtext('_continuation')):
- # space.warn(space.newtext("Using _continuation/greenlet/stacklet
together "
- # "with vmprof will crash"),
- # space.w_RuntimeWarning)
try:
rvmprof.enable(fileno, period, memory, native, real_time)
except rvmprof.VMProfError as e:
diff --git a/rpython/rlib/rvmprof/rvmprof.py b/rpython/rlib/rvmprof/rvmprof.py
--- a/rpython/rlib/rvmprof/rvmprof.py
+++ b/rpython/rlib/rvmprof/rvmprof.py
@@ -143,7 +143,7 @@
native = 0 # force disabled on Windows
lines = 0 # not supported on PyPy currently
- p_error = self.cintf.vmprof_init(fileno, interval, lines, memory,
"pypy", native, real_time)
+ p_error = self.cintf.vmprof_init(fileno, interval, memory, lines,
"pypy", native, real_time)
if p_error:
raise VMProfError(rffi.charp2str(p_error))
diff --git a/rpython/rlib/rvmprof/test/test_rvmprof.py
b/rpython/rlib/rvmprof/test/test_rvmprof.py
--- a/rpython/rlib/rvmprof/test/test_rvmprof.py
+++ b/rpython/rlib/rvmprof/test/test_rvmprof.py
@@ -98,12 +98,12 @@
self.tmpfilename = str(self.tmpfile)
super(RVMProfSamplingTest, self).init()
- ENTRY_POINT_ARGS = (int, float)
- def entry_point(self, value, delta_t):
+ ENTRY_POINT_ARGS = (int, float, int)
+ def entry_point(self, value, delta_t, memory=0):
code = self.MyCode('py:code:52:test_enable')
rvmprof.register_code(code, self.MyCode.get_name)
fd = os.open(self.tmpfilename, os.O_WRONLY | os.O_CREAT, 0666)
- rvmprof.enable(fd, self.SAMPLING_INTERVAL)
+ rvmprof.enable(fd, self.SAMPLING_INTERVAL, memory=memory)
start = time.time()
res = 0
while time.time() < start+delta_t:
@@ -128,17 +128,25 @@
def test(self):
from vmprof import read_profile
- assert self.entry_point(10**4, 0.1) == 99990000
+ assert self.entry_point(10**4, 0.1, 0) == 99990000
assert self.tmpfile.check()
self.tmpfile.remove()
#
- assert self.rpy_entry_point(10**4, 0.5) == 99990000
+ assert self.rpy_entry_point(10**4, 0.5, 0) == 99990000
assert self.tmpfile.check()
prof = read_profile(self.tmpfilename)
tree = prof.get_tree()
assert tree.name == 'py:code:52:test_enable'
assert self.approx_equal(tree.count, 0.5/self.SAMPLING_INTERVAL)
+ def test_mem(self):
+ from vmprof import read_profile
+ assert self.rpy_entry_point(10**4, 0.5, 1) == 99990000
+ assert self.tmpfile.check()
+ prof = read_profile(self.tmpfilename)
+ assert prof.profile_memory
+ assert all(p[-1] > 0 for p in prof.profiles)
+
class TestNative(RVMProfSamplingTest):
@@ -177,7 +185,7 @@
def test(self):
from vmprof import read_profile
# from vmprof.show import PrettyPrinter
- assert self.rpy_entry_point(3, 0.5) == 42000
+ assert self.rpy_entry_point(3, 0.5, 0) == 42000
assert self.tmpfile.check()
prof = read_profile(self.tmpfilename)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit