On Sun, Apr 23, 2017 at 11:12 PM, Nick Coghlan <ncogh...@gmail.com> wrote:
> On 23 April 2017 at 13:21, Louie Lu <m...@louie.lu> wrote: > > Hi all, > > > > I'm now looking for cProfile/profile lib's issue, and have solve a > series of > > dependent problem, here is the list: > > > > #9285 - Add a profile decorator to profile and cProfile > %prun -s Src: https://github.com/ipython/ipython/blob/master/IPython/core/magics/execution.py#L187 Docs: https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-prun http://pynash.org/2013/03/06/timing-and-profiling/ %time, %timeit %prun, %lprun %mprun, %memit > > #30113 - Allow helper functions to wrap sys.setprofile > > #18971 - Use argparse in the profile/cProfile modules > > #30118 - Add unittest for cProfile/profile command line interface > > > > It can divide into two categories, first is the context manager problem, > and > > the second is optparse to argparse problem. > > > > 1. context manager problem: > > > > Relative issue: #9285, #30113 > > Relative PR: #287, #1212, #1253 > > > > This is an issue since 2010, and stop at profile can't simply add a > > __enter__ and __exit__ to make it a context manager. The main problem is, > > sys.setprofile() will hit the return and get bad return in profile > > dispatch_return function. The solution is to insert a simulate call in > the > > helper function, to provide the context between helper frame and where > the > > profile is defined. > > I'd like to second Louie's call for additional review here. I've been > reviewing them so far, and they look sensible to me, but I don't > personally know the profile code base at all, so there's a strong > chance I'll miss subtle details. > https://westurner.github.io/wiki/awesome-python-testing#benchmarks - plop, https://github.com/python/cpython/blob/master/Lib/profile.py https://github.com/python/cpython/blob/master/Lib/cProfile.py
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com