Форум сайта python.su
294
Имеем ситуевину, когда в переменной храниться некое значение. Регулярно(несколько сот раз в секунду) приходит новое значение, которое нужно присвоить этой переменной, это или True\False или 0\число отличное от нуля.
Собственно вопрос как будет прапвильнее с точки зрения быстродействия? при условии что
переменная обновляеться с частотой несколько сот раз в секунду, но реально само значение может не меняться десятки минут?(тоесть минут пять может падать одно True, а потом две минуты одно False)
вариант 1
def setValue(self, newValue): self.Value = newValue
def setValue(self, newValue): if self.Value != newValue: self.Value = newValue

[code python][/code]
Отредактировано PEHDOM (Фев. 28, 2017 16:22:05)
Офлайн
568
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"))
Офлайн
294
Религия то позволяет, но мне казалось на такой простой вопрос уже должен быть ответ. Конечно самому все узнавать гораздо полезнее, но иногда проще(лучше) спросить и получить готовый ответ.
В любом случае спасибо, всетаки присваивание быстрее сравнения на 0.05 с. по крайней мере на моем компьютере..
[code python][/code]
Офлайн
568
PEHDOMДорогой друг, это на миллион повторений теста вообще-то, и на моем компьютере ситуация обратная: сравнение быстрее.
В любом случае спасибо, всетаки присваивание быстрее сравнения на 0.05 с. по крайней мере на моем компьютере..
Офлайн
186
> переменная обновляеться с частотой несколько сот раз в секунду
Забей на это.
Офлайн
294
FishHook
Дорогой друг, это на миллион повторений теста вообще-то
Rodegast
Забей на это.
[code python][/code]
Офлайн
12
PEHDOM
Да. Это как на спичках экономить. Основное “просаживание” в приложениях из-за косых запросов к БД или лишних “тяжелых” операций.
Офлайн