Объяснение двух процентных чисел в профилировщике tenorflow? - PullRequest
0 голосов
/ 15 мая 2018

Я использую инструмент профилирования , предоставленный tenorflow. Вот один снимок результатов профилирования: enter image description here

Мой вопрос: что означают два процентных числа после данных?

1 Ответ

0 голосов
/ 15 мая 2018

Первое число - это процент от общего объема использованной памяти / времени, потраченного на функцию, а второе - процентное соотношение использованной памяти / времени, потраченного на функцию, которое не выделено / потрачено в внутренние функции.Часто они называются включающим (включая функции в функции) и исключительным (исключая функции в функции) профилированием.


Я объясню это для таймингов, но то же самое работает для профилирования памяти.

Это потому, что профилировщики просто измеряют, сколько времени занимает каждый вызов функции.Например, если у вас есть:

def func1():
    # something
    func2()
    # something

def func2():
    # something

И давайте предположим, что профилировщик для func1() мер вызова 1000 мс расходуется в func1, а 750ms расходуется в func2, тогда числа будут:

func1    100%    25%
func2     75%    

Поскольку 100% времени тратится на func1 - но только 25% ((1000 мс - 750 мс) / 1000 мс) времени тратится на func1, что не потрачено на func2.Аналогично, 75% (750 мс / 1000 мс) расходуется в общей сложности func2.В этом примере второе число для func2 также будет равно 75%, потому что я не включил туда никакого кода, но если бы внутри были другие функции, то была бы применена та же математика.Так что, чтобы не путать, я не включил его туда.

Чтобы сделать его более интересным и включить другой пример, предположим, что у вас есть:

def func1():
    # something
    func2()
    # something
    func3()
    # something

def func2():
    # something

def func3():
    # something

А профилировщик измеряет 1000 мс в func1, 200 мс в func2 и 500 мс в func3 таблица будет выглядеть так:

func1   100% (1000 / 1000)    30%  ((1000 - 200 - 500) / 1000)
func2    20% ( 200 / 1000)
func3    50% ( 500 / 1000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...