|
|
|
Канал Игры Мечты: «Техническая помощь в реализации самописных игр» |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
БулерМэн : |
В коде на Python 2.7 разница чуть меньше секунды, из-за применения функции range()
|
xrange же есть
а в Си когда-то давно ключевое слово register для счётчика ускоряло цикл заметно, а поскольку регистров очень мало, то один цикл был предпочтительнее
_________________ This is what you get ...
(c) Radiohead
Последний раз редактировалось: Sh.Tac. (01:58 13-03-2018), всего редактировалось 1 раз |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Cкрытый текст (кликните здесь для просмотра)
Код: |
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крытый текст (кликните здесь для просмотра)
Код: |
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 минут:
По сути это уже какая-то оптимизация на уровне вылавливания индусов в коде
_________________ Сосиска в хлебе
Последний раз редактировалось: БулерМэн (03:58 13-03-2018), всего редактировалось 4 раз(а) |
|
|
Grebomet
1466 EGP
      Рейтинг канала: 2(20) Репутация: 261 Сообщения: 4787 Откуда: Питербурх Зарегистрирован: 06.01.2003
 |
|
Разница в пределах статистической погрешности.
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Grebomet : |
Разница в пределах статистической погрешности.
|
Есть желание выполнить код в течении 1000 секунд раз эдак десять, чтобы подтвердить свое утверждение?
_________________ Сосиска в хлебе
Последний раз редактировалось: БулерМэн (14:03 13-03-2018), всего редактировалось 3 раз(а) |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
У тебя абсолютно ужасный пример. Еще и sqrt(x*x+y*y+z*z) считаешь 2 раза в попытке сделать объедененный цикл быстрее потому что компилятор в объедененном не будет считать его второй раз очевидно.
Давай если пример - то такой же как изначально. Первый цикл формирует массив данных. Второй - на основании этих данных формирует второй массив данных
_________________ MOV topka, C++ |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Jurec : |
Первый цикл формирует массив данных. Второй - на основании этих данных формирует второй массив данных
|
дельное предложение, возможно разница будет более очевидной.
_________________ Сосиска в хлебе |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Надо игры делать для Arduino, апчхи.
Дэнди, тетрис, восемь бит
добавлено спустя 2 минуты:
и обмениваться прошивками, как кассетами
_________________ Сосиска в хлебе
Последний раз редактировалось: БулерМэн (18:14 11-07-2018), всего редактировалось 2 раз(а) |
|
|
Olorin
70 EGP
  Рейтинг канала: 1(6) Репутация: 12 Сообщения: 97 Откуда: Хьёрвард Зарегистрирован: 27.02.2006
 |
|
БулерМэн : |
Надо игры делать для Arduino, апчхи.
Дэнди, тетрис, восемь бит
добавлено спустя 2 минуты:
и обмениваться прошивками, как кассетами
|
Ну, допустим, ардуина мало у кого найдётся, да ещё и с экраном, что сильно ограничивает круг потенциальных участников такого коммьюнити... Но, при действительном желании заморочиться, обмен сырыми загрузочными образами для х86 организовать вполне реалистично. Есть даже годный цикл статеек на эту тему.
_________________ Мы на многое не отваживаемся не потому что оно трудно; оно трудно именно потому, что мы на него не отваживаемся.
Сенека Старший |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Olorin : |
обмен сырыми загрузочными образами для х86 организовать вполне реалистично
|
- О! Месье знает толк в извpащениях!
Добавлю абсурдности: в качестве дисплея для ардуино использовать стрелочный прибор. Можно два
В детстве была такая игрушка, размером с кассету. Вставляешь в нее перфокарту с заданием на знание ПДД - жмешь вариант ответа и загорается либо зеленая либо красная лампочка.
Выявить закономерность перфорированных дырочек от правильности ответа - проблематично.
Дисплей нарисован на перфокарте и вообще без ардуино, просто набор кнопок, лампочек и батарейки
_________________ Сосиска в хлебе
Последний раз редактировалось: БулерМэн (22:01 12-07-2018), всего редактировалось 1 раз |
|
|
Jerry Rezet
581 EGP
  Рейтинг канала: 5(113) Репутация: 86 Сообщения: 3365 Откуда: Санкт-Петербург. Зарегистрирован: 01.04.2005
 |
|
БулерМэн : |
Вложенные циклы? Два подряд? Три? О да, трэш и угар, не удивительно почему тормозит
|
Кстати, по поводу вложенных циклов - подобного вида хэ в MSVC2013 если и тормозит, - то сильно быстрее - кубик 20х20 из кубиков 1х1 (все 4 грани отрисовываются) вложенных циклов там целых 3, а тормозов как-то ни одного.. Хотя рисовка там всё теми же glVertex3f(), даже без glArray(). Это, наверное, потому, что я ещё не умею орудовать со всякими массивами и прочими шейдерами-шнейдерами-штукеншнайдерами, вызывая за одно обращение всё то, на что сейчас уходит сотня.
БулерМэн : |
В случае с Jerry Rezet - могу предложить рисовать графику на ходу, объединив циклы вычисления (xn=x/math.sqrt(x*x+y*y+z*z)) и циклы рисования.
|
Пробовал - питон меня в этом слабо поддерживает. Там, походу, питон надо чисто на логику взаимодействия класть, а вся математика крупными кусками на аппаратном уровне крутиться должна, чтобы поменьше метаний между CPU и GPU, всё, что можно - сразу в OpenCL пихать огромными блоками. Я так не умею. Видимо мой удел в питоне - простенькие скрипты на полэкрана. Либо учиться долго писать красиво и производительно, что влом.
Cкрытый текст (кликните здесь для просмотра)
БулерМэн : |
Ширсон, вам заняться больше нечем, кроме как знакомить с википедией? Попробуйте себя в преподавательской деятельности, у вас получится.
|
Ты не поверишь, но современному поколению очень бы не помешало пройти начальный курс гуглежа. Не умеют. Категорически! Какой только херни не находят - всё, кроме того, что нужно и правильно. Свойства соединительной ткани ищут на сайтах клиник косметологии (хорошо, если не на сайтах салонов маникюра!), а объяснение сути электрокардиограммы - в фейсбуке в пабликах "врачи-убийцы". И на полном серьёзе потом это излагают. И при этом не могут нормально нарисовать схему (СХЕМУ! м... их космическую!) нервно-мышечного синапса. Так что не трогай Шы, у него бы всё очень хорошо получилось - я его методами пользуюсь, и оно работает.
|
добавлено спустя 2 минуты:
БулерМэн : |
А потом восхититься скоростью и убрать к чертям весь питон
|
Так и сделал.
добавлено спустя 7 минут:
БулерМэн : |
В детстве была такая игрушка, размером с кассету. Вставляешь в нее перфокарту с заданием на знание ПДД - жмешь вариант ответа и загорается либо зеленая либо красная лампочка.
Выявить закономерность перфорированных дырочек от правильности ответа - проблематично.
|
Была у меня такая. Там от кнопки два контакта шло, и дырка только напротив одного. Навострился я уже на следующий день. Поэтому старался на дырки не смотреть изо всех сил.
_________________ - Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]
Последний раз редактировалось: Jerry Rezet (05:55 24-07-2018), всего редактировалось 4 раз(а) |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Jerry Rezet : |
современному поколению очень бы не помешало пройти начальный курс гуглежа. Не умеют. Категорически
|
Отдельную тему создай, приколоченную навсегда к верхним важным - "Как правильно гуглить", будет респект.
Jerry Rezet : |
Навострился я уже на следующий день.
|
Тест Тьюринга пройден
Jerry Rezet : |
Там, походу, питон надо чисто на логику взаимодействия класть
|
Особенно геморройно перекладывать существующий код на питон или обратно.
Вот неделю назад как раз этим и занимался - написанную на питоне мною же программу - переписывал на Си. Программа или даже игра, написанная на питоне - с большой натяжкой может быть оправдана как "прототип" когда не разбираешься в особенностях железа на котором крутится питон и в интернете есть только мануалы по работе с железом на питоне. Это я сейчас говорю про РаспберриПи.
На PC питон я считаю бесполезная вещь совсем, разве что в локали http-сервер запустить и разноцветные буковки на странице им рисовать
Jerry Rezet : |
Так и сделал.
|
И каково техническое решение в данный момент?
_________________ Сосиска в хлебе |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
БулерМэн : |
На PC питон я считаю бесполезная вещь совсем, разве что в локали http-сервер запустить и разноцветные буковки на странице им рисовать
|
Вот так выглядят разноцветные буковки на странице, от локального сервера, по версии тех, кто таки разбирается в Питоне
_________________ У меня бисера не доxеpа. |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Shirson : |
Вот так выглядят разноцветные буковки на странице
|
Попрошу объясниться, сарказм не ясен
_________________ Сосиска в хлебе |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
БулерМэн : |
Shirson : |
Вот так выглядят разноцветные буковки на странице, от локального сервера, по версии тех, кто таки разбирается в Питоне
|
Попрошу объясниться, сарказм не ясен
|
EVE-Online написана на питоне.
Теперь сарказм ясен или более углублённо объяснить?
_________________ У меня бисера не доxеpа. |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 2(21) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Shirson : |
более углублённо объяснить?
|
Да, пожалуй объясните, какой версии там используется питон, сколько там на самом деле питона, а не прекомпилированных библиотек, раз уж вы таки сарказмируете
добавлено спустя 13 минут:
Цифры в студию
3д-графику рисует клиент на питоне?
Используется нестандартный компилятор питона в байт-код для быстроты работы? И кстати, все таки хотелось бы услышать, за что именно отвечает сам питон в данной игре, и сколько вставок кода на другом языке используется.
добавлено спустя 3 минуты:
Мы же тут технические подробности обсуждаем, не так ли?
_________________ Сосиска в хлебе
Последний раз редактировалось: БулерМэн (18:17 26-07-2018), всего редактировалось 3 раз(а) |
|
|
CatSam
318 EGP
   Рейтинг канала: 2(21) Репутация: 35 Сообщения: 1804 Откуда: Краснодар - Москва Зарегистрирован: 20.02.2009
 |
|
БулерМэн : |
за что именно отвечает сам питон в данной игре, и сколько вставок кода на другом языке используется.
|
~90 Мб кода на питоне. Сам видел. Больше ничего не знаю, но это цифра. И цифра впечатляющая. К сожалению, не помню клиентская это была часть или серверная. Давно это было.
_________________ ψ Корпус - мать, Корпус - отец! ψ
Последний раз редактировалось: CatSam (19:02 26-07-2018), всего редактировалось 1 раз |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
БулерМэн : |
Shirson : |
более углублённо объяснить?
|
Да, пожалуй объясните, какой версии там используется питон, сколько там на самом деле питона, а не прекомпилированных библиотек, раз уж вы таки сарказмируете
добавлено спустя 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а.
Последний раз редактировалось: Shirson (19:03 26-07-2018), всего редактировалось 2 раз(а) |
|
|
Minx
1011 EGP
        Рейтинг канала: 6(332) Репутация: 139 Сообщения: 10548 Откуда: Gomel, Belarus Зарегистрирован: 19.11.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 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
Конечно пусть считает. Это же не мешаем мне тоже считать что-то о его высказываниях (обычно безаппеляционно-ультимативных), верно?
_________________ У меня бисера не доxеpа.
Последний раз редактировалось: Shirson (20:03 26-07-2018), всего редактировалось 1 раз |
|
|
Minx
1011 EGP
        Рейтинг канала: 6(332) Репутация: 139 Сообщения: 10548 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005
 |
|
Все верно (;
Хотя меня больше бы впечатлила не картинка, которую в фотошопе нарисовать можно, а масштаб графа агентов игромеха, с учётом его динамики развития, баланса и инфраструктуры по поддержке и изменению.
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
|
|
|
Канал Игры Мечты: «Техническая помощь в реализации самописных игр» |
|