# -*- coding: utf-8 -*- # MegEngine is Licensed under the Apache License, Version 2.0 (the "License") # # Copyright (c) 2014-2020 Megvii Inc. All rights reserved. # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. from typing import Optional from ..core._imperative_rt import ProfilerImpl from ..core._imperative_rt.imperative import sync class Profiler: def __init__(self, path: Optional[str] = None): self.impl = ProfilerImpl(path) def __enter__(self): sync() self.impl.enable() return self def __exit__(self, val, type, trace): sync() self.impl.disable() def dump(self, path: Optional[str] = None): self.impl.dump(path)