Size: a a a

2019 September 30

YG

Yuriy Gorlichenko in pro.lua
питон только у пошаговых
Там торопиться некуда
источник

S

Snusmumriken in pro.lua
Да не, если ограничить питон по функционалу, чтобы он не ИИ управлял и не командовал графическими эффектами, а раз в N тиков проверял соблюдение правил игры и определял что "кто-то победил/проиграл" или "с прошлой волной врагов игрок рассправился, надо наспавнить новых, вот этих вот" — питон справляется, но встраивать его тот ещё геморрой.
Я мутил на pygame вполне себе нагруженные штуки, но там неизвестно откуда появляются просадки производительности.
источник

S

Snusmumriken in pro.lua
https://hsto.org/webt/tl/sz/vt/tlszvtgabk5jcjljesri56wg6xc.jpeg
https://hsto.org/webt/2k/ge/da/2kgedai80rfduvhogj6ooaxrog8.jpeg

Во, пара фотачек. Внутри куба — raspberry pi, на ней запущено два питоновых приложения:
1. графический интерфейс на pygame
2. сервис, который по сети принимает трёхмерный массив битиков из графического интерфейса, и рулит диодами: очень быстро переключает слои (~200 раз в секунду) и заполняет у них сдвиговые регистры.

Питон показывает себя неплохо, но заметно стрёмное мерцание.
источник

A

Andrey in pro.lua
Кстати по поводу производительности. В PHP есть модуль xhprof - что он дает - ты его подключаешь, и он тебе показывает сколько каких вызовов было, откуда куда, сколько по времени исполнялось итд. Фигачится xml файл, или в БД. Очень удобно для рефакторинга и что бы надавать по ушам разрабам. В lua есть что то подобное что бы не самому считать таймы?
источник

S

Snusmumriken in pro.lua
Andrey
Кстати по поводу производительности. В PHP есть модуль xhprof - что он дает - ты его подключаешь, и он тебе показывает сколько каких вызовов было, откуда куда, сколько по времени исполнялось итд. Фигачится xml файл, или в БД. Очень удобно для рефакторинга и что бы надавать по ушам разрабам. В lua есть что то подобное что бы не самому считать таймы?
Профилировщики на любой вкус http://lua-users.org/wiki/ProfilingLuaCode
Другое дело что любой профилировщик очень, очень сильно бьёт по производительности, поэтому к цифрам не надо присматриваться, анализируя общую картину в условных процентах. Если понадобятся прям точные данные — находишь функцию которая чот подозрительно много жрёт, и лепишь счётчик времени её выполнения вокруг.
источник

A

Andrey in pro.lua
о, супер. ну его же можно отключать.
источник

S

Snusmumriken in pro.lua
Включаешь только для общего анализа. Для частного — уже что-то своё делаешь.
источник

A

Andrey in pro.lua
я так и делаю на проекте включаю только когда надо посмотреть где накосячено
источник

S

Snusmumriken in pro.lua
Я накатал тупейший но быстрый профилировщик, типа ставишь точку "начать записывать эту фигню", а потом такой: "закончить записывать эту фигню". Можно вызывать много раз, показывает общее время вызовов и время последнего вызова.
https://pastebin.com/qYrT6eJ4
источник

A

Andrey in pro.lua
вызов цикла в цикле и еще в цикле и рекурсии - достаточно один раз включить на большом проекте и сразу понять кто виноват, хотя это был слоненок :) очень наглядно приучает людей к SOLID
источник

A

Andrey in pro.lua
иногда скорость серверного запроса можно в сотни раз увеличить таким образом. особенно если много легаси
источник

A

Andrey in pro.lua
Snusmumriken
Я накатал тупейший но быстрый профилировщик, типа ставишь точку "начать записывать эту фигню", а потом такой: "закончить записывать эту фигню". Можно вызывать много раз, показывает общее время вызовов и время последнего вызова.
https://pastebin.com/qYrT6eJ4
а что у тебя там за таблица foo? очень подозрительная :)
источник

S

Snusmumriken in pro.lua
Она для теста производительности лукапов : )
источник

S

Snusmumriken in pro.lua
Видишь строчку if ... then return profiler end?
Если ты реквайрнешь этот скрипт, он вернёт модуль. А всё что ниже — тесты, которые запустятся если скрипт был вызван самостоятельно.
источник

A

Andrey in pro.lua
понял.
источник

A

Andrey in pro.lua
А чот в короне не нахожу всяких гуишных конструкторов типа кнопки меню формы стандартные
источник

A

Andrey in pro.lua
вижу библиотеку с физикой только :)
источник

S

Snusmumriken in pro.lua
А, берёшь прямоугольник и вешаешь тап-обработчик : )
Можно ещё текста нафигачить.
источник

A

Andrey in pro.lua
блин. это сурово
источник

S

Snusmumriken in pro.lua
Нет, это не сурово а как раз напротив легко и приятно, и ты полностью можешь задизигнить что хочешь.
источник