Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация
Фотография

Stackless Python 2.7


  • Авторизуйтесь для ответа в теме
44 ответов в теме

#41
Chechen

Chechen

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 470 сообщений
3
  • EVE Ingame:Takashi Natsume
  • Client:Рус
некропостер
  • 0
Я ем людей

#42
DarkPhoenix

DarkPhoenix

    Hatred

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPipPip
  • 28656 сообщений
4376

Обратите внимание, что здесь не учитывается время затраченное на загрузку python интерпретатора. Теоретически при запущенном приложении данный код отработает гораздо быстрее чем при полном запуске. И пример кода слишком прост чтобы протестировать скорость работы реального приложения. Так что однозначные выводы из этого теста всё равно не сделать.

Обратитите внимание на некропостинг.

Кроме того, всякие операции с кучей итераций ANSI C действительно делает много быстрее, чем питон, так что пример несколько синтетический.
  • 0

There is a place where the black stars hang
and the strangest eons call that amorphous mass
unknown, immense, ambivalent to all


#43
Atmega

Atmega

    Clone Grade Ksi

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPip
  • 12542 сообщений
2639
  • EVE Ingame:Atmega
  • Corp:MEN
  • Client:Eng
Там ниже были примеры с продолжительностью вычислений по 5 минут, имхо секунда загрузки python environment не влияет
  • 0

We don't need to get a life, we gamers have many lifes.

Time you enjoy wasting, was not wasted.


#44
Zyamilon

Zyamilon

    Clone Grade Delta

  • Tech III Pilots
  • PipPip
  • 171 сообщений
29
  • EVE Ingame:Zyamilon
  • EVE Alt:-
  • Corp:Dark Voodoo Cult
  • Ally:The Gorgon Empire
  • Channel:r-rwar
  • Client:Eng
1. Пардоньте, а чем стеклесс пайтон отличается от обычного? Управлением мифическими потоками?
2. Черт, и ведь действительно некропостинг.

Сообщение отредактировал Zyamilon: 13 December 2011 - 20:47

  • 0

Если у вас есть корабль и он имеет возможность установки орудий и вы хотите с помощью них убивать - вы уже исповедуете религию Темных Вуду, но еще не знаете об этом.

Dark Voodoo Cult


#45
Trimutius III

Trimutius III

    Khanid Trader

  • Tech III Pilots
  • PipPipPipPipPipPipPip
  • 6685 сообщений
224
  • EVE Ingame:Trimutius III
  • EVE Alt:Weldy StarFiner
  • Corp:F-053
  • Channel:ru-help
  • Client:Eng

Python:

i = 0while (i < 1000000):   print i  i = i + 1

С:
#include <stdio.h>int main (){int i;for(i = 0; i < 1000000; i++)    printf ("%d\n", i);return 0;}


Итак кто же быстрей сделает эту однотипную операцию, я специально вывожу вывод в /dev/null что бы тест не зависел от фазы луны. Принтскрин с результатами в аттаче. Так что С считает на начале слово раз, а питон, на раз-два-три :) :rolleyes:


С сделает быстрее...

Объясняю почему...
С создаст одну переменную i... и распечатает её 1000000 раз с разынми значениями...

Питон же.
а) будет интерпретировать команды каждый раз на ходу, то есть питон не делает компиляции в машинный код вообще никогда. (откомпиленный питонский код это фактически только прогнанный парсером, но это всё равно зашифрованные команды питона а не машинный код)
б) будет создавать миллион раз объекты соответствующие разным числам от 1 до миллиона.
Команда
i = i + 1
в питоне делает следующее:
создаётся объект хранящий соответсвующий значению i+1, и дальше идентефикатор i переписывается так чтобы он ссылался на новый объект.
то есть если ты напишешь в питоне следующее:
i = 1000i = i + 1

то он сделает следующее:
создаст объект соответвующий числу 1000. Сделает так что i будет ссылаться на этот объект.
Потом когда увидит команду (i + 1) загрузит объект по ссылке i увидит что там 1000, загрузит объект соответвующий числу 1, вызовет метод сооветствующий оператору +, получит третий объект соответствующий числу 1001, запишет ссылку на этот объект в i.
(Питон конечно только иммитирует подобное поведение и на самом деле работает эффективнее, но даже иммитация подобного эффекта требует затраты процессорных мощностей лишних)

в то время как C для этой операции всего лишь сделает несколько обычных машинных операций (создание константы, запись в адрес, чтение с адреса, создание константы, сложение, и запись в адрес)

Сообщение отредактировал Trimutius III: 13 December 2011 - 21:48

  • 0
Я посланник из ниоткуда в никуда. Никто и ничто не посылало меня. И хотя это невозможно, я всё-таки существую. ©Тримутиус
Изображение




0 посетителей читают тему

0 members, 0 guests, 0 anonymous users