OwlCyberSecurity - MANAGER
Edit File: profiling.py
## # Copyright (c) 2014-2017 Apple Inc. All rights reserved. # # Licensed 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. ## from twisted.internet.defer import inlineCallbacks, returnValue import cProfile as profile import pstats def profile_method(): """ Decorator to profile a function """ def wrapper(method): def inner(*args, **kwargs): prof = profile.Profile() prof.enable() result = method(*args, **kwargs) prof.disable() stats = pstats.Stats(prof) stats.sort_stats('cumulative').print_stats() return result return inner return wrapper def profile_inline_callback(): """ Decorator to profile an inlineCallback function """ def wrapper(method): @inlineCallbacks def inner(*args, **kwargs): prof = profile.Profile() prof.enable() result = yield method(*args, **kwargs) prof.disable() stats = pstats.Stats(prof) stats.sort_stats('cumulative').print_stats() returnValue(result) return inner return wrapper