Timing оба метода с timeit
.
Я использую len()
, чтобы лучше измерить время выполнения, чтобы задержать немедленную оценку.
строка настройки для обоих:
setup = """import random
import string
a = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(2))
b = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(2))"""
Final Test Expression A:
timeit.repeat("len(a)==2==len(b)", setup=setup, repeat=100)
Final Test Expression B:
timeit.repeat("len(a)==2 and len(b)==2", setup=setup, repeat=100)
Оба испытания выполняются Выражение один миллион раз , записывает время, затем делает это сто раз.
Выключается, выражение B быстрее примерно на десятую часть секунды. На моем компьютере среднее время выглядит следующим образом:
- A: 0.22025904178619385 секунд
- B: 0.3740460252761841 секунд
Попробуйте сами.
Генерация случайных строк благодаря this Stack Overflow question.
Пожалуйста, найдите время, чтобы [читать это] (http://ericlippert.com/2012/ 12/17/performance-rant/http: //ericlippert.com/2012/12/17/performance-rant/) – CoryKramer
@CoryKramer Это вопрос с автоответчиком ...? Это тоже своего рода «теоретический» вопрос. –
Я вижу это, я просто публикую этот комментарий. Такие вопросы часто не нужны, потому что они вникают в ненужные микрооптимизации [которые редко являются узким местом в коде] (https://programmers.stackexchange.com/questions/99445/is-micro-optimisation-important-when-coding). Просто напишите свой код для удобочитаемости и правильности, и беспокоитесь об оптимизации ** Если производительность является проблемой ** и **, если эта часть кода ** вызывает проблему. – CoryKramer