Встроенный модуль timeit лучше всего работает с командной строкой IPython.
В функции времени из модуля:
from timeit import default_timer as timer
import sys
def timefunc(func, *args, **kwargs):
"""Time a function.
args:
iterations=3
Usage example:
timeit(myfunc, 1, b=2)
"""
try:
iterations = kwargs.pop('iterations')
except KeyError:
iterations = 3
elapsed = sys.maxsize
for _ in range(iterations):
start = timer()
result = func(*args, **kwargs)
elapsed = min(timer() - start, elapsed)
print(('Best of {} {}(): {:.9f}'.format(iterations, func.__name__, elapsed)))
return result
Я предполагаю, что программно не запускать приложение-компаньон для часов из iOS. Противоположный путь был бы возможен: запустить приложение iOS в фоновом режиме после получения сообщения от часов. См. Раздел WWDC talk Знакомство с Watch Connectivity .
Вы можете проверить WCSession.defaultSession().watchAppInstalled
и попросить пользователя запустить приложение, если оно истинно.
Раньше было невозможно запустить приложение WatchKit из приложения iPhone, но приложение iPhone можно было запустить только в фоновом режиме - с помощью метода openParentApplication
.
Начиная с WatchOS 2 , однако теперь невозможно, чтобы приложение вызывало запуск другого. Вместо этого есть новые методы для изменения очередей, которые будут собраны, когда другое приложение будет запущено в будущем.
В одном частичном решении для вашего случая использования может отображаться локальное уведомление, которое можно использовать для открытия смотреть приложение. Основной недостаток такого подхода заключается в том, что я не верю, что есть способ ограничить это уведомление только Watch, поэтому он также появится на iPhone, где, если его использовать, это приведет к тому, что приложение iPhone выйдет на передний план. Беспорядочный, если он реализован так, и, следовательно, не стоит того, о чем я подумал бы, даже если бы он мог пройти обзор магазина приложений.