Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 28, 2017 16:19:55

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

что быстрее сравнение или присваивание?

Имеем ситуевину, когда в переменной храниться некое значение. Регулярно(несколько сот раз в секунду) приходит новое значение, которое нужно присвоить этой переменной, это или 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 интересует именно в питоне, а не вообще





==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Фев. 28, 2017 16:22:05)

Офлайн

#2 Фев. 28, 2017 16:26:13

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

что быстрее сравнение или присваивание?

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"))



Офлайн

#3 Фев. 28, 2017 16:42:31

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

что быстрее сравнение или присваивание?

Религия то позволяет, но мне казалось на такой простой вопрос уже должен быть ответ. Конечно самому все узнавать гораздо полезнее, но иногда проще(лучше) спросить и получить готовый ответ.
В любом случае спасибо, всетаки присваивание быстрее сравнения на 0.05 с. по крайней мере на моем компьютере..



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#4 Фев. 28, 2017 17:02:26

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

что быстрее сравнение или присваивание?

PEHDOM
В любом случае спасибо, всетаки присваивание быстрее сравнения на 0.05 с. по крайней мере на моем компьютере..
Дорогой друг, это на миллион повторений теста вообще-то, и на моем компьютере ситуация обратная: сравнение быстрее.



Офлайн

#5 Фев. 28, 2017 19:20:11

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

что быстрее сравнение или присваивание?

> переменная обновляеться с частотой несколько сот раз в секунду

Забей на это.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#6 Март 1, 2017 09:28:51

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

что быстрее сравнение или присваивание?

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

Хмм , понятно, разница несущественна и не стоит заморачиваться, если не пытаешься выиграть миллионные доли секунд.
Всем спасибо.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#7 Март 1, 2017 09:51:49

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

что быстрее сравнение или присваивание?

PEHDOM
Да. Это как на спичках экономить. Основное “просаживание” в приложениях из-за косых запросов к БД или лишних “тяжелых” операций.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version