Найти - Пользователи
Полная версия: что быстрее сравнение или присваивание?
Начало » Python для новичков » что быстрее сравнение или присваивание?
1
PEHDOM
Имеем ситуевину, когда в переменной храниться некое значение. Регулярно(несколько сот раз в секунду) приходит новое значение, которое нужно присвоить этой переменной, это или True\False или 0\число отличное от нуля.
Собственно вопрос как будет прапвильнее с точки зрения быстродействия? при условии что
переменная обновляеться с частотой несколько сот раз в секунду, но реально само значение может не меняться десятки минут?(тоесть минут пять может падать одно True, а потом две минуты одно False)
вариант 1
 def setValue(self, newValue):
    self.Value = newValue

или вариант 2
 def setValue(self, newValue):
    if self.Value != newValue:
        self.Value = newValue

или вообще пофиг?
PS интересует именно в питоне, а не вообще



FishHook
PEHDOM
Ну а взять и замерить разницу вам религия не позволяет?

 import timeit
class Foo(object):
    def __init__(self):
        self.value = 0
    def set_value_1(self):
        self.value = 1
    def set_value_2(self):
        if self.value != 1:
            self.value = 1
f = Foo()
def setValue1():
    f.set_value_1()
def setValue2():
    f.set_value_2()
print(timeit.timeit("setValue1()", setup="from __main__ import setValue1"))
print(timeit.timeit("setValue2()", setup="from __main__ import setValue2"))
PEHDOM
Религия то позволяет, но мне казалось на такой простой вопрос уже должен быть ответ. Конечно самому все узнавать гораздо полезнее, но иногда проще(лучше) спросить и получить готовый ответ.
В любом случае спасибо, всетаки присваивание быстрее сравнения на 0.05 с. по крайней мере на моем компьютере..
FishHook
PEHDOM
В любом случае спасибо, всетаки присваивание быстрее сравнения на 0.05 с. по крайней мере на моем компьютере..
Дорогой друг, это на миллион повторений теста вообще-то, и на моем компьютере ситуация обратная: сравнение быстрее.
Rodegast
> переменная обновляеться с частотой несколько сот раз в секунду

Забей на это.
PEHDOM
FishHook
Дорогой друг, это на миллион повторений теста вообще-то
Rodegast
Забей на это.

Хмм , понятно, разница несущественна и не стоит заморачиваться, если не пытаешься выиграть миллионные доли секунд.
Всем спасибо.
4kpt_V
PEHDOM
Да. Это как на спичках экономить. Основное “просаживание” в приложениях из-за косых запросов к БД или лишних “тяжелых” операций.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB