Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 24.10.2018
Сообщений: 4
1

Разное время выполнения программ

24.10.2018, 17:11. Просмотров 820. Ответов 7
Метки нет (Все метки)

Здравствуйте!
Почему скорость выполнения функций отличается в зависимости от того где они запускаются?
Если запускаю в консоле - программа выполняется быстрее чем в IDE (использую Wing IDE)
Пример.
Время выполнения в консоле:
3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40)
_________________________________
forLoop : 1.8672226498562265 =>
_________________________________
listComp : 1.0452214996682148 =>
_________________________________
mapCall : 0.5306503870825039 =>
_________________________________
genExpr : 1.427833488166335 =>
_________________________________
genFunc : 1.4664546781685468 =>

Время выполнения в IDE:

3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40)
_________________________________
forLoop : 4.45649404998894 =>
_________________________________
listComp : 1.9458866622428665 =>
_________________________________
mapCall : 0.5576458305684584 =>
_________________________________
genExpr : 12.455734571997347 =>
_________________________________
genFunc : 12.939494802034947 =>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2018, 17:11
Ответы с готовыми решениями:

Разное время исполнения программы
"Баловался" с кодом питона и наткнулся на интересный результат: один и тот же код выполняется...

Разное время задержки
Здравствуйте. Такая проблема, есть функция, которая должна выполняться каждые N минут. Причем...

Разное время выполнения функций
Выполняю на локальном сервере запросы get private void button1_Click_1(object sender, EventArgs...

Разное время выполнения методов
Здравствуйте, столкнулся с такой, можно сказать проблемой: Я заметил что в Java методам...

7
Эксперт Python
4009 / 2942 / 980
Регистрация: 28.10.2013
Сообщений: 7,645
24.10.2018, 17:26 2
Вы просто не умеете профилировать. Или не понимаете что это такое.
0
0 / 0 / 0
Регистрация: 24.10.2018
Сообщений: 4
24.10.2018, 17:38  [ТС] 3
Я использую небольшую функцию
Python
1
2
3
4
5
6
def timer(func, *pargs, **kargs):
    start = time.clock()
    for i in repslist:
        ret = func(*pargs, **kargs)
    elapsed = time.clock() - start
    return (elapsed, ret)
Начало выполнения программы
start = time.clock()

И сколько времени потрачено
elapsed = time.clock() - start

Почему-то в консоле и в IDE разное время выполнения
0
Эксперт Python
4009 / 2942 / 980
Регистрация: 28.10.2013
Сообщений: 7,645
24.10.2018, 18:04 4
Цитата Сообщение от mhvozdesky Посмотреть сообщение
Почему-то в консоле и в IDE разное время выполнения
Почему-то у меня одинаковое.
Разное время выполнения программ

Вы прочувствовали разницу между "дай-ка я замерю сферического коня в вакууме один раз" и timeit c number=10?
Не может код выполняться всегда за одно и тоже время - особенно, если это микрокод выполняемый за микровремя.
Поэтому в профилировании запускают измерение неоднократно, а затем вычисляется среднее время.
P.S. А в вашем случае вообще непонятно - каких "коней" вы замеряете.
0
Эксперт Python
4009 / 2942 / 980
Регистрация: 28.10.2013
Сообщений: 7,645
24.10.2018, 18:05 5
Del
0
0 / 0 / 0
Регистрация: 24.10.2018
Сообщений: 4
24.10.2018, 18:16  [ТС] 6
Garry Galler, Я это понимаю. Если запускаю одну и ту же функцию в консоле, например, то, конечно, время разное, но отличия небольшие - 1.4664546781685468, 1.4398902897589023. Если ту же функцию запускаю в IDE - время 12.939494802034947, это уже существенно. Я этого не понимаю.
0
Эксперт Python
4009 / 2942 / 980
Регистрация: 28.10.2013
Сообщений: 7,645
24.10.2018, 18:28 7
Цитата Сообщение от mhvozdesky Посмотреть сообщение
Я этого не понимаю.
Вы функции сначала покажите, чтобы люди могли запустить код и проверить у себя.

Добавлено через 4 минуты
P.S. Мою мысль про суммирование времени и вычислении среднего на многих тестах вы, видимо, совсем упустили.
0
0 / 0 / 0
Регистрация: 24.10.2018
Сообщений: 4
24.10.2018, 18:38  [ТС] 8
Два модуля.
timeseqs.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import sys, mytimer
 
reps = 10000
repslist = range(reps)
 
def forLoop():
    res = []
    for x in repslist:
        res.append(abs(x))
    return res
 
def listComp():
    return [abs(x) for x in repslist]
 
def mapCall():
    return list(map(abs, repslist))
 
def genExpr():
    return list(abs(x) for x in repslist)
 
def genFunc():
    def gen():
        for x in repslist:
            yield abs(x)
    return list(gen())
 
print(sys.version)
 
for test in (forLoop, listComp, mapCall, genExpr, genFunc):
    elspsed, result = mytimer.timer(test)
    print('_' * 33)
    print('{test} : {elapsed} => [{result0}, {result_1}]'.format(test=test.__name__, elapsed=elspsed, result0=result[0], result_1=result[-1]))
второй
mytimer.py

Python
1
2
3
4
5
6
7
8
9
10
11
import time
 
reps = 1000
repslist = range(reps)
 
def timer(func, *pargs, **kargs):
    start = time.clock()
    for i in repslist:
        ret = func(*pargs, **kargs)
    elapsed = time.clock() - start
    return (elapsed, ret)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2018, 18:38

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Разное время выполнения SQL запроса
Добрый день. Вопрос чисто на знание и мое непонимание )). У меня в php коде есть sQL запрос....

Delphi 10.2 разное расположение компонента во время проектирования и выполнения программы
Доброе время суток, Такая проблема на TGroupBox расположены 2 TSpeedButton. Во время...

Ремонт пмм ZANUSSI DA6452-911912009/03, увеличено время выполнения программ
исполнительные устройства проверены(тэн,помпа слива и циркуляционная тоже,клапан залива,)-к ним...

Ремонт ПММ Bauknecht GSXP 813123 854661401040, увеличилось время выполнения программ
Вызвали на посудомойку с ошибкой F8 E2. Псудомойка просто выдавала её и всё. Ошибку сбросил, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.