mirror of
https://github.com/python/cpython.git
synced 2024-11-21 12:59:38 +01:00
Co-authored-by: Chiu-Hsiang Hsu
This commit is contained in:
parent
351c103134
commit
2a7a0020c9
@ -299,6 +299,13 @@ functions:
|
||||
Create a :class:`~pstats.Stats` object based on the current
|
||||
profile and print the results to stdout.
|
||||
|
||||
The *sort* parameter specifies the sorting order of the displayed
|
||||
statistics. It accepts a single key or a tuple of keys to enable
|
||||
multi-level sorting, as in :func:`Stats.sort_stats <pstats.Stats.sort_stats>`.
|
||||
|
||||
.. versionadded:: 3.13
|
||||
:meth:`~Profile.print_stats` now accepts a tuple of keys.
|
||||
|
||||
.. method:: dump_stats(filename)
|
||||
|
||||
Write the results of the current profile to *filename*.
|
||||
|
@ -41,7 +41,9 @@ class Profile(_lsprof.Profiler):
|
||||
|
||||
def print_stats(self, sort=-1):
|
||||
import pstats
|
||||
pstats.Stats(self).strip_dirs().sort_stats(sort).print_stats()
|
||||
if not isinstance(sort, tuple):
|
||||
sort = (sort,)
|
||||
pstats.Stats(self).strip_dirs().sort_stats(*sort).print_stats()
|
||||
|
||||
def dump_stats(self, file):
|
||||
import marshal
|
||||
|
@ -387,8 +387,9 @@ class Profile:
|
||||
|
||||
def print_stats(self, sort=-1):
|
||||
import pstats
|
||||
pstats.Stats(self).strip_dirs().sort_stats(sort). \
|
||||
print_stats()
|
||||
if not isinstance(sort, tuple):
|
||||
sort = (sort,)
|
||||
pstats.Stats(self).strip_dirs().sort_stats(*sort).print_stats()
|
||||
|
||||
def dump_stats(self, file):
|
||||
with open(file, 'wb') as f:
|
||||
|
@ -7,7 +7,7 @@ import os
|
||||
from difflib import unified_diff
|
||||
from io import StringIO
|
||||
from test.support.os_helper import TESTFN, unlink, temp_dir, change_cwd
|
||||
from contextlib import contextmanager
|
||||
from contextlib import contextmanager, redirect_stdout
|
||||
|
||||
import profile
|
||||
from test.profilee import testfunc, timer
|
||||
@ -92,6 +92,11 @@ class ProfileTest(unittest.TestCase):
|
||||
self.profilermodule.run("int('1')", filename=TESTFN)
|
||||
self.assertTrue(os.path.exists(TESTFN))
|
||||
|
||||
def test_run_with_sort_by_values(self):
|
||||
with redirect_stdout(StringIO()) as f:
|
||||
self.profilermodule.run("int('1')", sort=('tottime', 'stdname'))
|
||||
self.assertIn("Ordered by: internal time, standard name", f.getvalue())
|
||||
|
||||
def test_runctx(self):
|
||||
with silent():
|
||||
self.profilermodule.runctx("testfunc()", globals(), locals())
|
||||
|
@ -0,0 +1 @@
|
||||
:meth:`Profile.print_stats` has been improved to accept multiple sort arguments. Patched by Chiu-Hsiang Hsu and Furkan Onder.
|
Loading…
Reference in New Issue
Block a user