Cloud-Garden делает редактора GUI вызванным Jigloo, который довольно хорош, если Вы в такую вещь (и цена очень, очень разумна). Если бы это - все, что это пропускает для Вас от Eclipse, я рекомендовал бы смотреть. Netbeans делает тонну материала с исходным кодом, который Нельзя отредактировать, и т.д.
Еще одна вещь, которую я упомяну: Я использовал редакторов GUI как Matisse и Jigloo для супер быстрого прототипирования. Однако в рамках 3 или 4 повторений, я всегда роняю для вручения кодирования разметок. Я также нахожу, что, когда я делаю быстрое прототипирование, я почти всегда более продуктивен, когда я изменяю менеджера по расположению на абсолют и просто помещаю компоненты. Как только дизайн запускает гель, реализовывая дизайн кодирования руки с помощью менеджера по наглядности (я настоятельно рекомендую Расположение МиГа ), довольно легко, и дает намного лучшие результаты.
я знаю, что перетаскивание расположения GUI действительно соблазнительно - но Расположение МиГа невероятно продуктивно для графический интерфейсов пользователя проводного соединения руки, и я подозреваю, что почти любой разработчик будет более продуктивным в течение недели, спускаясь по тому пути.
Согласно документации 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
Начиная с 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
не будет включать время, прошедшее во время сна.
Вы можете легко создать контекст времени (см. 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()
Модуль timeit выглядит так, как будто он предназначен для тестирования производительности алгоритмов, а не для простого мониторинга приложения. Лучше всего, вероятно, использовать модуль времени, вызвать time.time ()
в начале и в конце интересующего вас сегмента и вычесть два числа. Имейте в виду, что полученное число может содержать намного больше десятичных знаков, чем фактическое разрешение системного таймера.
Проверяли ли вы функциональность, предоставляемую профилем или cProfile?
http://docs.python.org/library/profile.html
Это дает гораздо более подробную информацию, чем просто печать время до и после вызова функции. Может, стоит взглянуть ...
В документации также упоминается, что time.clock () и time.time () имеют разное разрешение в зависимости от платформы. В Unix time.clock () измеряет время процессора, а не время настенных часов.
timeit также отключает сборку мусора при запуске тестов, что, вероятно, не то, что вам нужно для производственного кода.
Я нахожу это время. time () достаточно для большинства целей.