Объяснение объяснения времени Timeit [duplicate]

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

35
задан mu 無 26 March 2015 в 15:11
поделиться

3 ответа

%timeit - функция ipython magic , которая может использоваться для временного выделения определенного фрагмента кода (один оператор выполнения или один метод)

. docs:

% timeit

Time execution of a Python statement or expression

Usage, in line mode:
    %timeit [-n<N> -r<R> [-t|-c] -q -p<P> -o] statement

Чтобы использовать его, например, если мы хотим узнать, работает ли с xrange быстрее, чем используя range, вы можете просто сделать:

In [1]: %timeit for _ in range(1000): True
10000 loops, best of 3: 37.8 µs per loop

In [2]: %timeit for _ in xrange(1000): True
10000 loops, best of 3: 29.6 µs per loop

И вы получите тайминги для них.

Главное преимущество заключается в том, что вам не нужно импортировать timer.timeit , и запустите код несколько раз, чтобы выяснить, какой из них лучше подходит; % timeit будет автоматически вычислять количество прогонов, необходимых для вашего кода, в зависимости от всего 2-секундного окна выполнения.

38
ответ дан mu 無 18 August 2018 в 18:28
поделиться
  • 1
    есть ли способ макрокоманды или набор строк из оболочки ipython? – alpha_989 29 December 2017 в 00:36
  • 2
    @ alpha_989 Да, вы можете обернуть эти строки строк внутри функции, а затем запустите функцию, например: %timeit function() – mu 無 3 May 2018 в 08:10

IPython перехватывает их, они называются встроенными магическими командами, вот список: https://ipython.org/ipython-doc/dev/interactive/magics.html

Вы также можете создать свою собственную магию, https://ipython.org/ipython-doc/dev/config/custommagics.html

Ваш timeit здесь https://ipython.org/ipython-doc/dev/interactive/magics.html#magic-timeit

3
ответ дан bakkal 18 August 2018 в 18:28
поделиться

Это известно как магия линии в iPython. Они уникальны тем, что их аргументы распространяются только до конца текущей строки, а магии сами по себе структурированы для разработки командной строки. timeit используется для выполнения кода.

Если вы хотите увидеть все магические заклинания, которые вы можете использовать, вы можете просто ввести:

%lsmagic

, чтобы получить список как магических линий, так и клеточных магов.

Следующая дополнительная магическая информация из документации здесь :

IPython имеет систему команд, которые мы называем магами, которые обеспечивают эффективный мини-командный язык, который ортогональный синтаксису Python и расширяемый пользователем новыми командами. Маги должны быть введены в интерактивном режиме, поэтому они используют соглашения командной строки, такие как использование пробелов для разделения аргументов, тире для опций и другие условные обозначения, типичные для среды командной строки.

В зависимости от о том, находитесь ли вы в режиме line или cell , есть два разных способа использования %timeit. Ваш вопрос иллюстрирует первый способ:

In [1]: %timeit range(100)

vs.

In [1]: %%timeit x = range(100)
19
ответ дан miradulo 18 August 2018 в 18:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: