exponenta event banner

socFunctionAnalyzer

Оценка количества операций в функции MATLAB

Описание

пример

socFunctionAnalyzer(functionName) создает отчет с предполагаемым количеством операций в функции MATLAB ®, указанной functionName.

Функция создает отчет в виде электронной таблицы Microsoft ® Excel ® и MAT-файла. Функция также предоставляет ссылку для просмотра отчета в отдельном диалоговом окне.

Отчет включает информацию для каждого математического или логического оператора в функции, с отдельными строками для каждого оператора и типом данных. Например, умножение на тип данных double и умножение на тип данных uint32 перечислены отдельно. В отчете каждый экземпляр оператора отображается как отдельная строка. Отчет включает эти поля.

  • Path - путь к оператору в структурной иерархии верхней функции;

  • Count - Количество операций, выполняемых оператором в проекте

  • Operator - используемый оператор;

  • DataType - тип данных, используемый для вывода оператора;

  • Link - ссылка на местоположение оператора в функции;

Дополнительные сведения см. в разделе Использование отчета анализатора алгоритмов.

пример

socFunctionAnalyzer(functionName,Name,Value) указывает параметры, использующие один или несколько аргументов пары имя-значение. Например, 'IncludeOperator','+' указывает, что созданный отчет включает только '+' подсчитывает оператор.

пример

report = socFunctionAnalyzer(___) возвращает структуру таблиц, содержащих информацию отчета. Укажите любую комбинацию входных аргументов из предыдущих синтаксисов.

пример

[report,y1,...,yn] = socFunctionAnalyzer(___) возвращает выходные данные y1,...,yn указанной функции. Укажите любую комбинацию входных аргументов из предыдущих синтаксисов.

Примеры

свернуть все

В этом примере вычисляется количество операторов в функции soc_test_func.m.

Анализ функции

soc_test_func принимает два входных аргумента типа uint32. Используйте FunctionInputs аргумент для создания отчета с 10 и 20 в качестве входных данных для soc_test_func функция. Отчет создается в папке с именем report.

socFunctionAnalyzer('soc_test_func.m','FunctionInputs',{10,20},"Folder","report");

Просмотреть созданный отчет

После выполнения, socFunctionAnalyzer функция предоставляет ссылку на сгенерированный отчет. Щелкните ссылку Открыть средство просмотра отчетов. Отчет открывается в отдельном окне:

Результат показывает, что ADD оператор используется 50 раз с типом данных double. Вызов myloop выполняется один раз с типом данных uint32, и MUL оператор используется 50 раз с типом данных uint32.

Входные аргументы

свернуть все

Анализируемая функция MATLAB, заданная как вектор символов или строковый скаляр, указывающий имя функции или файла.

Пример: 'soc_analyze_FFT_tb.m'

Типы данных: char | string

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: socFunctionAnalyzer('mySocFunction.m','Folder','report_sym')

Входы для анализируемой функции, указанной как разделенная запятыми пара, состоящая из 'FunctionInputs' и массив ячеек. socFunctionAnalyzer функция оценивает анализируемую функцию, functionName, с этими значениями в качестве входных данных. Если этот аргумент пары имя-значение не указан, то никакие аргументы не передаются functionName.

Если functionName ожидает входных аргументов, то необходимо указать этот аргумент пары имя-значение. В противном случае socFunctionAnalyzer ошибки функции.

Пример: 'FunctionInputs',{10,fi(20)}

Расположение папки сформированного отчета, указанного как разделенная запятыми пара, состоящая из 'Folder' и вектор символов или строковый скаляр, указывающий путь к папке. Укажите путь к расположению созданных выходных отчетов как полный путь или относительный путь.

Пример: 'Folder','C:/Work/mydir'

Операторы для включения в создаваемый отчет, указанные как разделенная запятыми пара, состоящая из 'IncludeOperator' и вектор символов или строковый скаляр для указания одного оператора. Используйте массив ячеек векторов символов или строковых скаляров для указания нескольких операторов. Если этот аргумент пары имя-значение не указан, socFunctionAnalyzer функция включает все операторы, за исключением операторов, указанных ExcludeOperator аргумент пары имя-значение.

Пример: 'IncludeOperator','+'

Пример: 'IncludeOperator',{'+','IF','MUL'}

Операторы для исключения из создаваемого отчета, указанные как разделенная запятыми пара, состоящая из 'ExcludeOperator' и вектор символов или строковый скаляр для указания одного оператора. Используйте массив ячеек векторов символов или строковых скаляров для указания нескольких операторов. Если этот аргумент пары имя-значение не указан, socFunctionAnalyzer функция включает все операторы в отчет.

Пример: 'ExcludeOperator','-'

Пример: 'ExcludeOperator',{'-','CALL'}

Функции для включения в создаваемый отчет, указанные как разделенная запятыми пара, состоящая из 'IncludeFunction' и вектор символов или строковый скаляр для указания одной функции или имени файла. Используйте массив ячеек векторов символов или строковых скаляров для указания нескольких функций или имен файлов. Если этот аргумент пары имя-значение не указан, socFunctionAnalyzer функция включает все функции в отчет, за исключением функций, указанных в 'ExcludeFunction' аргумент пары имя-значение. Используйте 'IncludeFunction' пара имя-значение, если у вас есть функция тестового стенда, и вы хотите проанализировать только одну из функций, которые она вызывает.

Пример: 'IncludeFunction','myFunc.m'

Пример: 'IncludeFunction',{'myFunc.m','func2'}

Функции для включения в создаваемый отчет, указанные как разделенная запятыми пара, состоящая из 'ExcludeFunction' и вектор символов или строковый скаляр для указания одной функции или имени файла. Используйте массив ячеек векторов символов или строковых скаляров для указания нескольких функций или имен файлов. Если этот аргумент пары имя-значение не указан, socFunctionAnalyzer функция включает все функции в отчет.

Пример: 'ExcludeFunction','myFunc.m'

Пример: 'ExcludeFunction',{'myFunc.m','func2'}

Отображать подробные сообщения, указанные как пара, разделенная запятыми, состоящая из 'Verbose' и 0 (false) или 1 (true). Когда это значение равно 1 (true), функция отображает подробную информацию на различных этапах выполнения.

Пример: 'Verbose',true

Выходные аргументы

свернуть все

Количество операторов функций, возвращаемое в виде структуры из пяти таблиц:

  • OperatorDetailedReport - Полностью подробный отчет для каждого оператора

  • OperatorAggregatedReport - ракурс агрегированного оператора с одной строкой для каждого типа оператора;

  • OperatorHierarchicalReport - Иерархическое представление оператора

  • PathAggregatedReport - представление агрегированной модели;

  • PathHierarchicalReport - Иерархическое представление модели

Каждая таблица содержит необработанные данные, из которых функция создает HTML-представление, и ссылку для просмотра данных в окне отчета. Созданный файл Excel содержит пять листов, содержащих информацию из пяти таблиц. Дополнительные сведения о созданном отчете см. в разделе Использование отчета анализатора алгоритмов.

Анализируемые выходные данные функции, возвращенные в качестве выходных данных functionName входная функция.

Представлен в R2020a