точно функция Python времени меры берет

Cloud-Garden делает редактора GUI вызванным Jigloo, который довольно хорош, если Вы в такую вещь (и цена очень, очень разумна). Если бы это - все, что это пропускает для Вас от Eclipse, я рекомендовал бы смотреть. Netbeans делает тонну материала с исходным кодом, который Нельзя отредактировать, и т.д.

Еще одна вещь, которую я упомяну: Я использовал редакторов GUI как Matisse и Jigloo для супер быстрого прототипирования. Однако в рамках 3 или 4 повторений, я всегда роняю для вручения кодирования разметок. Я также нахожу, что, когда я делаю быстрое прототипирование, я почти всегда более продуктивен, когда я изменяю менеджера по расположению на абсолют и просто помещаю компоненты. Как только дизайн запускает гель, реализовывая дизайн кодирования руки с помощью менеджера по наглядности (я настоятельно рекомендую Расположение МиГа ), довольно легко, и дает намного лучшие результаты.

я знаю, что перетаскивание расположения GUI действительно соблазнительно - но Расположение МиГа невероятно продуктивно для графический интерфейсов пользователя проводного соединения руки, и я подозреваю, что почти любой разработчик будет более продуктивным в течение недели, спускаясь по тому пути.

41
задан hoju 6 November 2009 в 03:25
поделиться

5 ответов

Согласно документации Python , это связано с точностью функции времени в различных операционных системах: зависимый. В Windows time.clock () имеет микросекундную детализацию, но Детализация time.time () составляет 1/60 от Второй; в Unix time.clock () имеет 1/100 секунды детализации и time.time () намного точнее. На любая платформа, таймер по умолчанию функции измерения времени настенных часов, а не время процессора. Это означает, что другие процессы, запущенные на одном компьютере может повлиять на время ... В Unix вы можете используйте time.clock () для измерения процессорного времени.

Чтобы извлечь непосредственно из кода timeit.py :

if sys.platform == "win32":
    # On Windows, the best timer is time.clock()
    default_timer = time.clock
else:
    # On most other platforms the best timer is time.time()
    default_timer = time.time

Кроме того, он имеет дело непосредственно с настройкой кода времени выполнения для вас. Если вы используете время, вы должны делать это сами. Это, конечно, экономит ваше время

Настройка Timeit:

def inner(_it, _timer):
    #Your setup code
    %(setup)s
    _t0 = _timer()
    for _i in _it:
        #The code you want to time
        %(stmt)s
    _t1 = _timer()
    return _t1 - _t0

Edit, только для Python 3:

Начиная с Python 3.3, вы можете использовать time.perf_counter () (время для всей системы ) или time.process_time () (время для всего процесса), точно так же, как вы использовали time.clock () :

from time import process_time

t = process_time()
#do some stuff
elapsed_time = process_time() - t

Новая функция process_time не будет включать время, прошедшее во время сна.

27
ответ дан 27 November 2019 в 00:38
поделиться

Вы можете легко создать контекст времени (см. PEP 343 ) для измерения блоков кода.

from __future__ import with_statement
import time

class Timer(object):
    def __enter__(self):
        self.__start = time.time()

    def __exit__(self, type, value, traceback):
        # Error handling here
        self.__finish = time.time()

    def duration_in_seconds(self):
        return self.__finish - self.__start

timer = Timer()

with timer:
    # Whatever you want to measure goes here
    time.sleep(2)

print timer.duration_in_seconds()    
28
ответ дан 27 November 2019 в 00:38
поделиться

Модуль timeit выглядит так, как будто он предназначен для тестирования производительности алгоритмов, а не для простого мониторинга приложения. Лучше всего, вероятно, использовать модуль времени, вызвать time.time () в начале и в конце интересующего вас сегмента и вычесть два числа. Имейте в виду, что полученное число может содержать намного больше десятичных знаков, чем фактическое разрешение системного таймера.

8
ответ дан 27 November 2019 в 00:38
поделиться

Проверяли ли вы функциональность, предоставляемую профилем или cProfile?

http://docs.python.org/library/profile.html

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

4
ответ дан 27 November 2019 в 00:38
поделиться

В документации также упоминается, что time.clock () и time.time () имеют разное разрешение в зависимости от платформы. В Unix time.clock () измеряет время процессора, а не время настенных часов.

timeit также отключает сборку мусора при запуске тестов, что, вероятно, не то, что вам нужно для производственного кода.

Я нахожу это время. time () достаточно для большинства целей.

2
ответ дан 27 November 2019 в 00:38
поделиться
Другие вопросы по тегам:

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