---
title: 宏定义
description: "- PROF：将采集语句封装起来，这样可以通过ENABLE_PROF宏定义在编译期间控制是否采集数据，支持传入一个参数或者两个参数。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/Profiling/mindieprofiling_0056.html
sourcePath: /source/zh/canncommercial/900/devaids/Profiling/mindieprofiling_0056.html
indexId: 0733866f10936ec2561aa11dce4bbae33824287452c0fc32c24a904802c7e86e73
---
# 宏定义

- PROF：将采集语句封装起来，这样可以通过ENABLE_PROF宏定义在编译期间控制是否采集数据，支持传入一个参数或者两个参数。

  - 一个参数：采集语句。
    当定义ENABLE_PROF会正常执行打印，当没有定义则不会打印。

    PROF(std::cout<< "enable prof" << std::endl);

  - 两个参数：采集级别，采集语句。自动初始化采集类以及定义采集级别。
    当定义ENABLE_PROF会正常执行采集，当没有定义则不会采集，会自动初始化Profiler类。

    PROF(INFO, Attr("req", 1).Event("recv"));


- ENABLE_PROF：与PROF协同使用，当没有定义该环境变量，说明不开启采集能力，会自动将PROF定义为空实现。通常定义在CMakeLists.txt中。
  add_definitions(-DENABLE_PROF)
