Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 21, 2016 20:38:28

Etayson
Зарегистрирован: 2016-06-19
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

doza_and

ну, прям в 200 миллионов раз?
Я сделал на вставку FASM и результат 4мс на 10млн операций и я что-то разницу в 200 млн не вижу:
И как 28т может занимать 0,3 нано секунды?
И даже если у вас один цикл программы занимает 28т=0,3 наносек., то 10млн циклов - это 3мс.. что никак не в 200 млн раз быстрее

Procedure test()
StartTime = ElapsedMilliseconds()
!mov ecx,10000000
!xor ebx,ebx
!ll_label:
!inc ebx
!dec ecx
!jnz ll_label
PrintN(“Elapced time:”+Str(ElapsedMilliseconds()-StartTime)+“ms”)
EndProcedure

OpenConsole(“bla-bla”)
test()
Input()

Офлайн

#2 Июнь 21, 2016 20:47:49

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

А если поменять колво итераций на порядок, ещё большие чудеса начнутся.

Офлайн

#3 Июнь 22, 2016 09:28:07

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

Etayson
И даже если у вас один цикл программы занимает 28т=0,3 наносек
Вы не поняли - все циклы занимают 28 тактов.

Не надо очень серьезно к этому относится.

  • Я имел ввиду, что для реальных программ замерять скорость сложения не имеет смысла. В большинстве случаев сейчас скорость выполнения лимитируется совсем не временем выполнения операций.
  • Замерять надо несколько иначе. Но конечно сильно вы не ошибетесь ну раза в 2 -3
  • Сравнивать надо одинаковые операции. Что вы получите в данном коде на бейсике?
    >>> print(4000000000*4000000000)
    16000000000000000000
    
  • Если компилятор имеет хоть минимальное понятие об оптимизации то он выкинет код не влияющий на результат. Это явно не про ваш инструмент.

Но вцелом. Используйте то что вам удобно. быстродействие нужно далеко не всегда. Для хороших компиляторов/ интерпретаторов одинаковые действия обычно выполняются примерно за одинаковое время и не важно это C Фортран бейсик или питон.



Офлайн

#4 Июль 29, 2016 11:31:51

Cherka
Зарегистрирован: 2016-07-29
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступно обяснить как работают подпрограммы

Бэйсик рулит!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version