|
|
|
Канал Игры Мечты: «Техническая помощь в реализации самописных игр» |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) : 14 Posts: 1426
Joined: 27 Jul 2005
 |
|
БулерМэн wrote: |
В коде на Python 2.7 разница чуть меньше секунды, из-за применения функции range()
|
xrange же есть
а в Си когда-то давно ключевое слово register для счётчика ускоряло цикл заметно, а поскольку регистров очень мало, то один цикл был предпочтительнее
_________________ This is what you get ...
(c) Radiohead
Last edited by Sh.Tac. on 01:58 13-03-2018; edited 1 time in total |
|
|
БулерМэн
436 EGP
   Рейтинг канала: 2(21) : 68 Posts: 1580 Location: Гороховец Joined: 07 Feb 2006
 |
|
Cкрытый текст (кликните здесь для просмотра)
Code: |
import os
import time
import math
import sys
#print sys.version[:3]
#print('print to log')
start_time = time.time()
for i in xrange(2500):
for j in xrange(2500):
#print "...";
x=i;
y=j;
z=1;
D = math.sqrt(x*x+y*y+z*z);
xn= x/D;
yn= y/D;
zn= z/D;
#move code from second 'for'
x=i;
y=j;
z=1;
D_2 = math.sqrt(x*x+y*y+z*z)+100*math.sqrt(x);
print("--- %s seconds ---" % (time.time() - start_time))
raw_input();
|
|
29.64 секунды, разницы практически никакой
добавлено спустя 9 минут:
А вот если вынести "за скобки" список необходимый для итераций:
Cкрытый текст (кликните здесь для просмотра)
Code: |
import os
import time
import math
import sys
#print sys.version[:3]
#print('print to log')
list1 = range(2500);
start_time = time.time()
for i in list1:
for j in list1:
#print "...";
x=i;
y=j;
z=1;
D = math.sqrt(x*x+y*y+z*z);
xn= x/D;
yn= y/D;
zn= z/D;
#move code from second 'for'
x=i;
y=j;
z=1;
D_2 = math.sqrt(x*x+y*y+z*z)+100*math.sqrt(x);
print("--- %s seconds ---" % (time.time() - start_time))
raw_input();
|
|
Список уже в памяти, и его не нужно создавать заново - получаем 28 секунд.
добавлено спустя 8 минут:
По сути это уже какая-то оптимизация на уровне вылавливания индусов в коде
_________________ Сосиска в хлебе
Last edited by БулерМэн on 03:58 13-03-2018; edited 4 times in total |
|
|
Grebomet
1469 EGP
      Рейтинг канала: 2(20) : 261 Posts: 4790 Location: Питербурх Joined: 06 Jan 2003
 |
|
Разница в пределах статистической погрешности.
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
БулерМэн
436 EGP
   Рейтинг канала: 2(21) : 68 Posts: 1580 Location: Гороховец Joined: 07 Feb 2006
 |
|
Grebomet wrote: |
Разница в пределах статистической погрешности.
|
Есть желание выполнить код в течении 1000 секунд раз эдак десять, чтобы подтвердить свое утверждение?
_________________ Сосиска в хлебе
Last edited by БулерМэн on 14:03 13-03-2018; edited 3 times in total |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) : 102 Posts: 1441 Заблокирован Location: Seattle Joined: 25 Feb 2006
 |
|
У тебя абсолютно ужасный пример. Еще и sqrt(x*x+y*y+z*z) считаешь 2 раза в попытке сделать объедененный цикл быстрее потому что компилятор в объедененном не будет считать его второй раз очевидно.
Давай если пример - то такой же как изначально. Первый цикл формирует массив данных. Второй - на основании этих данных формирует второй массив данных
_________________ MOV topka, C++ |
|
|
БулерМэн
436 EGP
   Рейтинг канала: 2(21) : 68 Posts: 1580 Location: Гороховец Joined: 07 Feb 2006
 |
|
Jurec wrote: |
Первый цикл формирует массив данных. Второй - на основании этих данных формирует второй массив данных
|
дельное предложение, возможно разница будет более очевидной.
_________________ Сосиска в хлебе |
|
|
БулерМэн
436 EGP
   Рейтинг канала: 2(21) : 68 Posts: 1580 Location: Гороховец Joined: 07 Feb 2006
 |
|
Надо игры делать для Arduino, апчхи.
Дэнди, тетрис, восемь бит
добавлено спустя 2 минуты:
и обмениваться прошивками, как кассетами
_________________ Сосиска в хлебе
Last edited by БулерМэн on 18:14 11-07-2018; edited 2 times in total |
|
|
Olorin
70 EGP
  Рейтинг канала: 1(6) : 12 Posts: 97 Location: Хьёрвард Joined: 27 Feb 2006
 |
|
БулерМэн wrote: |
Надо игры делать для Arduino, апчхи.
Дэнди, тетрис, восемь бит
добавлено спустя 2 минуты:
и обмениваться прошивками, как кассетами
|
Ну, допустим, ардуина мало у кого найдётся, да ещё и с экраном, что сильно ограничивает круг потенциальных участников такого коммьюнити... Но, при действительном желании заморочиться, обмен сырыми загрузочными образами для х86 организовать вполне реалистично. Есть даже годный цикл статеек на эту тему.
_________________ Мы на многое не отваживаемся не потому что оно трудно; оно трудно именно потому, что мы на него не отваживаемся.
Сенека Старший |
|
|
БулерМэн
436 EGP
   Рейтинг канала: 2(21) : 68 Posts: 1580 Location: Гороховец Joined: 07 Feb 2006
 |
|
Olorin wrote: |
обмен сырыми загрузочными образами для х86 организовать вполне реалистично
|
- О! Месье знает толк в извpащениях!
Добавлю абсурдности: в качестве дисплея для ардуино использовать стрелочный прибор. Можно два
В детстве была такая игрушка, размером с кассету. Вставляешь в нее перфокарту с заданием на знание ПДД - жмешь вариант ответа и загорается либо зеленая либо красная лампочка.
Выявить закономерность перфорированных дырочек от правильности ответа - проблематично.
Дисплей нарисован на перфокарте и вообще без ардуино, просто набор кнопок, лампочек и батарейки
_________________ Сосиска в хлебе
Last edited by БулерМэн on 22:01 12-07-2018; edited 1 time in total |
|
|
Jerry Rezet
581 EGP
  Рейтинг канала: 5(113) : 86 Posts: 3364 Location: Санкт-Петербург. Joined: 01 Apr 2005
 |
|
БулерМэн wrote: |
Вложенные циклы? Два подряд? Три? О да, трэш и угар, не удивительно почему тормозит
|
Кстати, по поводу вложенных циклов - подобного вида хэ в MSVC2013 если и тормозит, - то сильно быстрее - кубик 20х20 из кубиков 1х1 (все 4 грани отрисовываются) вложенных циклов там целых 3, а тормозов как-то ни одного.. Хотя рисовка там всё теми же glVertex3f(), даже без glArray(). Это, наверное, потому, что я ещё не умею орудовать со всякими массивами и прочими шейдерами-шнейдерами-штукеншнайдерами, вызывая за одно обращение всё то, на что сейчас уходит сотня.
БулерМэн wrote: |
В случае с Jerry Rezet - могу предложить рисовать графику на ходу, объединив циклы вычисления (xn=x/math.sqrt(x*x+y*y+z*z)) и циклы рисования.
|
Пробовал - питон меня в этом слабо поддерживает. Там, походу, питон надо чисто на логику взаимодействия класть, а вся математика крупными кусками на аппаратном уровне крутиться должна, чтобы поменьше метаний между CPU и GPU, всё, что можно - сразу в OpenCL пихать огромными блоками. Я так не умею. Видимо мой удел в питоне - простенькие скрипты на полэкрана. Либо учиться долго писать красиво и производительно, что влом.
Cкрытый текст (кликните здесь для просмотра)
БулерМэн wrote: |
Ширсон, вам заняться больше нечем, кроме как знакомить с википедией? Попробуйте себя в преподавательской деятельности, у вас получится.
|
Ты не поверишь, но современному поколению очень бы не помешало пройти начальный курс гуглежа. Не умеют. Категорически! Какой только херни не находят - всё, кроме того, что нужно и правильно. Свойства соединительной ткани ищут на сайтах клиник косметологии (хорошо, если не на сайтах салонов маникюра!), а объяснение сути электрокардиограммы - в фейсбуке в пабликах "врачи-убийцы". И на полном серьёзе потом это излагают. И при этом не могут нормально нарисовать схему (СХЕМУ! м... их космическую!) нервно-мышечного синапса. Так что не трогай Шы, у него бы всё очень хорошо получилось - я его методами пользуюсь, и оно работает.
|
добавлено спустя 2 минуты:
БулерМэн wrote: |
А потом восхититься скоростью и убрать к чертям весь питон
|
Так и сделал.
добавлено спустя 7 минут:
БулерМэн wrote: |
В детстве была такая игрушка, размером с кассету. Вставляешь в нее перфокарту с заданием на знание ПДД - жмешь вариант ответа и загорается либо зеленая либо красная лампочка.
Выявить закономерность перфорированных дырочек от правильности ответа - проблематично.
|
Была у меня такая. Там от кнопки два контакта шло, и дырка только напротив одного. Навострился я уже на следующий день. Поэтому старался на дырки не смотреть изо всех сил.
_________________ - Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]
Last edited by Jerry Rezet on 05:55 24-07-2018; edited 4 times in total |
|
|
БулерМэн
436 EGP
   Рейтинг канала: 2(21) : 68 Posts: 1580 Location: Гороховец Joined: 07 Feb 2006
 |
|
Jerry Rezet wrote: |
современному поколению очень бы не помешало пройти начальный курс гуглежа. Не умеют. Категорически
|
Отдельную тему создай, приколоченную навсегда к верхним важным - "Как правильно гуглить", будет респект.
Jerry Rezet wrote: |
Навострился я уже на следующий день.
|
Тест Тьюринга пройден
Jerry Rezet wrote: |
Там, походу, питон надо чисто на логику взаимодействия класть
|
Особенно геморройно перекладывать существующий код на питон или обратно.
Вот неделю назад как раз этим и занимался - написанную на питоне мною же программу - переписывал на Си. Программа или даже игра, написанная на питоне - с большой натяжкой может быть оправдана как "прототип" когда не разбираешься в особенностях железа на котором крутится питон и в интернете есть только мануалы по работе с железом на питоне. Это я сейчас говорю про РаспберриПи.
На PC питон я считаю бесполезная вещь совсем, разве что в локали http-сервер запустить и разноцветные буковки на странице им рисовать
Jerry Rezet wrote: |
Так и сделал.
|
И каково техническое решение в данный момент?
_________________ Сосиска в хлебе |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) : 219 Posts: 16511 Location: 79°W 44°N Joined: 29 Jan 2002
 |
|
БулерМэн wrote: |
На PC питон я считаю бесполезная вещь совсем, разве что в локали http-сервер запустить и разноцветные буковки на странице им рисовать
|
Вот так выглядят разноцветные буковки на странице, от локального сервера, по версии тех, кто таки разбирается в Питоне
_________________ У меня бисера не доxеpа. |
|
|
БулерМэн
436 EGP
   Рейтинг канала: 2(21) : 68 Posts: 1580 Location: Гороховец Joined: 07 Feb 2006
 |
|
Shirson wrote: |
Вот так выглядят разноцветные буковки на странице
|
Попрошу объясниться, сарказм не ясен
_________________ Сосиска в хлебе |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) : 219 Posts: 16511 Location: 79°W 44°N Joined: 29 Jan 2002
 |
|
БулерМэн wrote: |
Shirson wrote: |
Вот так выглядят разноцветные буковки на странице, от локального сервера, по версии тех, кто таки разбирается в Питоне
|
Попрошу объясниться, сарказм не ясен
|
EVE-Online написана на питоне.
Теперь сарказм ясен или более углублённо объяснить?
_________________ У меня бисера не доxеpа. |
|
|
БулерМэн
436 EGP
   Рейтинг канала: 2(21) : 68 Posts: 1580 Location: Гороховец Joined: 07 Feb 2006
 |
|
Shirson wrote: |
более углублённо объяснить?
|
Да, пожалуй объясните, какой версии там используется питон, сколько там на самом деле питона, а не прекомпилированных библиотек, раз уж вы таки сарказмируете
добавлено спустя 13 минут:
Цифры в студию
3д-графику рисует клиент на питоне?
Используется нестандартный компилятор питона в байт-код для быстроты работы? И кстати, все таки хотелось бы услышать, за что именно отвечает сам питон в данной игре, и сколько вставок кода на другом языке используется.
добавлено спустя 3 минуты:
Мы же тут технические подробности обсуждаем, не так ли?
_________________ Сосиска в хлебе
Last edited by БулерМэн on 18:17 26-07-2018; edited 3 times in total |
|
|
CatSam
323 EGP
   Рейтинг канала: 2(21) : 35 Posts: 1804 Location: Краснодар - Москва Joined: 20 Feb 2009
 |
|
БулерМэн wrote: |
за что именно отвечает сам питон в данной игре, и сколько вставок кода на другом языке используется.
|
~90 Мб кода на питоне. Сам видел. Больше ничего не знаю, но это цифра. И цифра впечатляющая. К сожалению, не помню клиентская это была часть или серверная. Давно это было.
_________________ ψ Корпус - мать, Корпус - отец! ψ
Last edited by CatSam on 19:02 26-07-2018; edited 1 time in total |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) : 219 Posts: 16511 Location: 79°W 44°N Joined: 29 Jan 2002
 |
|
БулерМэн wrote: |
Shirson wrote: |
более углублённо объяснить?
|
Да, пожалуй объясните, какой версии там используется питон, сколько там на самом деле питона, а не прекомпилированных библиотек, раз уж вы таки сарказмируете
добавлено спустя 13 минут:
Цифры в студию
3д-графику рисует клиент на питоне?
Используется нестандартный компилятор питона в байт-код для быстроты работы? И кстати, все таки хотелось бы услышать, за что именно отвечает сам питон в данной игре, и сколько вставок кода на другом языке используется.
добавлено спустя 3 минуты:
Мы же тут технические подробности обсуждаем, не так ли?
|
Т.е. ты технические подробности обсуждал, когда разглагольствовал о бесполезности питона и годности его только для вывода цветных буковок на локальнойм сервере?
Ну тогда начни с себя и расскажи, про какую версию ты говорил, какие метрики проводил, что пришёл к такому выводу, как тестировал, примеры кода, способы снятия метрик. Не стесняйся, мы же тут технические подробности обсуждаем, не так ли?
Вопрос о рисовании 3D графики питоном говорит о полном непонимании сути вещей вопрошающим (что прослеживается уже давно и стабильно). Объясню на примере: У меня, в программе на Delphi, выводится 3D объект через OpenGL. Означает ли это, что 3D графика рисуется на Delphi? Тот же вопрос, если используется DirectX. Тот же вопрос, если используется Canvas. Как только осознаешь всю придурковатость вопроса, попробуй его переосмыслить и спросить ещё раз.
По EVE - и клиент и сервер EVE написаны на Stakless Python.
Для затравки можно почитать вики или тут: https://www.eveonline.com/article/stackless-python-2.7/
_________________ У меня бисера не доxеpа.
Last edited by Shirson on 19:03 26-07-2018; edited 2 times in total |
|
|
Minx
1025 EGP
        Рейтинг канала: 6(332) : 139 Posts: 10551 Location: Gomel, Belarus Joined: 19 Nov 2005
 |
|
БулерМэн там выше написал "я считаю". По мне так, пусть считает, у каждого своя карта пройденных граблей.
В EVE десяток лет назад было порядка 250KLOC на C++ и 600KLOC на Python. Здесь писали, что на питоне игровая логика. Потому что удобно, и я их понимаю. На Stackless они вряд ли от хорошей жизни перепозли, и распилили все по командам. Там они писали, что когда боролись с производительностью, то распиливали код (CCP has a technical vision of sharing game-agnostic code between different projects), и у меня подозрение, что весь игромех как раз выпилился в питона.
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) : 219 Posts: 16511 Location: 79°W 44°N Joined: 29 Jan 2002
 |
|
Конечно пусть считает. Это же не мешаем мне тоже считать что-то о его высказываниях (обычно безаппеляционно-ультимативных), верно?
_________________ У меня бисера не доxеpа.
Last edited by Shirson on 20:03 26-07-2018; edited 1 time in total |
|
|
Minx
1025 EGP
        Рейтинг канала: 6(332) : 139 Posts: 10551 Location: Gomel, Belarus Joined: 19 Nov 2005
 |
|
Все верно (;
Хотя меня больше бы впечатлила не картинка, которую в фотошопе нарисовать можно, а масштаб графа агентов игромеха, с учётом его динамики развития, баланса и инфраструктуры по поддержке и изменению.
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
|
|
|
Канал Игры Мечты: «Техническая помощь в реализации самописных игр» |
|