Highly Likely
А, туда я не до листал, соре
Highly Likely
Snusmumriken
Не обязательно поиск, например ты такой считаешь динамику изменения цен в постоянно дополняющемся списке, пересчитывая её на каждом изменении.
Highly Likely
Ну карочи да, если у тебя цикл от 1 до N, у тебя время действительно растет линейно с увеличением N
Rider
Highly Likely
Snusmumriken
Извините, что для вас я был обезьяной
Ты вот прямо сейчас продолжаешь так себя вести. Опиши проблему конкретно и выложи код на пастбин.
Опиши "желаемое поведение" и "то что получается".
Rider
Highly Likely
Мне кажеца, господину помощь не требуется
Snusmumriken
Андерстандбл?
Highly Likely
Snusmumriken
Алсо. Отношение к группе людей (в данном случае к чату) по реакции одного представителя (Белки-истерички) — весьма предосудительное поведение.
Igor
Highly Likely
м?
Стоит всего лишь чуток накосячить с метатаблицами…
Snusmumriken
м?
Ну кароч тут ещё наслаивается менеджер памяти ОС, который просто так память приложения не освободит, потому что раз приложение столько затребовало — оно тут же ещё раз может столько же затребовать, не переразмечать же. Поэтому резервируется сразу сильно больше чем оно реально жрёт, а если вдруг не хватает — начинает размечаться ЕЩЁ БОЛЬШЕ, вне зависимости от формального потребления.
Highly Likely
Может новый гарбажколлектор это и починил
Null
ну, в теории, через метатаблицы можно сделать и чтобы вообще не очищалось 🤷♂️
Rider
Snusmumriken
Стоит всего лишь чуток накосячить с метатаблицами…
Это может произойти если приложение разрабатывается наполовину на сишной стороне, и к юзердате забыли прицепить __gc который будет чистить уже сишный мусор при очистке от юзердаты на луёвой стороне.
Igor
Igor
Накосячить с метатаблицами - это выстрел себе в ногу, так что не считается
Alxius
Сделано на Lua: :Пушка наносит смешной вред 1 и создаёт врага при попадании в стену или другого врага =) https://www.youtube.com/watch?v=bMFbjnJwnYU
Денис
Ок спасибо! попробую. главное чтоб ничего не сломалося😭
Ты наткнулся на то, на что наткнулся я, когда писал биндинг к либе через Alien: выделялся буфер, чтобы MultiByte перегнать в WideChar и обратно, при этом, Alien не располагает метаметодом для закрытия буфера - на коротких тестах память текла, что будь здоров. Потом почитал про GC и понаблюдал в долгой перспективе: все оказывается чистится, только не прямщас, а когда Lua это надо. Так что наблюдай в долгой перспективе. Или забей, если работаешь с чистым Lua. Ну или можно постараться упрощать задачи интерпретатору, используя локальные переменные и для промежуточных результатов в линейном коде используя do end
Rider
Ты наткнулся на то, на что наткнулся я, когда писал биндинг к либе через Alien: выделялся буфер, чтобы MultiByte перегнать в WideChar и обратно, при этом, Alien не располагает метаметодом для закрытия буфера - на коротких тестах память текла, что будь здоров. Потом почитал про GC и понаблюдал в долгой перспективе: все оказывается чистится, только не прямщас, а когда Lua это надо. Так что наблюдай в долгой перспективе. Или забей, если работаешь с чистым Lua. Ну или можно постараться упрощать задачи интерпретатору, используя локальные переменные и для промежуточных результатов в линейном коде используя do end
Спасибо!
Luсky
Alxius
это намеренно сделано )
Null
Ты наткнулся на то, на что наткнулся я, когда писал биндинг к либе через Alien: выделялся буфер, чтобы MultiByte перегнать в WideChar и обратно, при этом, Alien не располагает метаметодом для закрытия буфера - на коротких тестах память текла, что будь здоров. Потом почитал про GC и понаблюдал в долгой перспективе: все оказывается чистится, только не прямщас, а когда Lua это надо. Так что наблюдай в долгой перспективе. Или забей, если работаешь с чистым Lua. Ну или можно постараться упрощать задачи интерпретатору, используя локальные переменные и для промежуточных результатов в линейном коде используя do end
то есть, буквально то, о чём ему три раза сказали
Null
(и с финализацией того, что под капотом это вообще вендопроблемы)
Денис
то есть, буквально то, о чём ему три раза сказали
Ну, когда ты кодил на сиподобных языках, приходишь такой и охреневаешь от того, что у тебя память раздувается не соразмерно данным, которые ты туда положил - знаешь, это порой очень сильно тебя выпихивает в транс по своим кривым рукам. Так что, если тебе скажут несколько раз, ничего страшного не случится - ты просто поймешь, что не у двух людей такое мнение, а у двадцати двух, соответственно, оно имеет место быть с большей вероятностью)))
Null
Ну, когда ты кодил на сиподобных языках, приходишь такой и охреневаешь от того, что у тебя память раздувается не соразмерно данным, которые ты туда положил - знаешь, это порой очень сильно тебя выпихивает в транс по своим кривым рукам. Так что, если тебе скажут несколько раз, ничего страшного не случится - ты просто поймешь, что не у двух людей такое мнение, а у двадцати двух, соответственно, оно имеет место быть с большей вероятностью)))
🤷♂️
Null
зато это должно быстро научить в чём разница между низкоуровневыми языками и высокоуровневыми :)
Денис
🤷♂️
Ну, у меня лично было такое. Я уже грешным делом хотел писать либу для работы со строками таки на нативном могучем.
Null
(и в разнице подходов ручной аллокации и деаллокации памяти и надежды на gc ;)
Highly Likely
На этом мы и остановим обсуждение топик-стартера :)
Денис
Оп, а мое сообщение в чате есть? Последнее? Оно у меня куда-то пропало...
Null
Денис
У меня вот до сих пор вопрос по rockspec...
Null
Денис
э?
https://t.me/ProLua/97242
Денис
Там я уже покопался, попытался поустанавливать через raw - вроде запарсилось, но упорно LuaRocks фейлится при попытке склонить репозиторий. А при попытке в LuaRocks засунуть ссылку на гит, оно утверждает, что этот репозиторий не имеет rockspec под мою версию Lua, хотя у меня UTF-8 по Windows CRLF написано:
"lua >= 5.1, <= 5.3",
И вот я сижу и думаю...
Null
а ты уверен что оно должно работать с https://github.com/outsidepro-arts/AlienTolkLua вместо имени пакета/указания на рокспеку?
Shedory
Здравствуйте, нашел чат по статье на хабре об ООП в Lua
Shedory
не совсем понимаю фишку с self.__index = self, можете пояснить?
Shedory
для меня __index было "если нет нужного поля в данной таблице, искать поле в таблице, указанной __index". Но тогда при self.__index = self по моей логике таблица будет искать несуществующее поле в себе же и его там снова не окажется
Igor
Типа ты говоришь объекту, чтобы сначала поле искалось в метатабилце, а потом в самом объекте, если нет в мете.
Shedory
оо, это меняет дело, спасибо!
Shedory
тогда вопрос все еще актуален. Что дает подобная конструкция и не будет ли ошибки из за попытки обращения к несуществующему полю?
Shedory
в плане не просто nill, а error
Shedory
в целом кажется разобрался, спасибо еще раз
Shedory
В статье написано про циклическую рекурсию, но там действительно не self.__index = self. Заставила задуматься книжка Иерузалимски по Lua, в которой как раз такая конструкция
Snusmumriken
Ну так я писал статью, лол кек.
Snusmumriken
Надо бы её переписать для понятности, потому что вот эти --[[8]] не очень для восприятия.
Александра
Ребят, что посоветуете для новичка? Где черпать знания?
Tony
Александра
нет
Tony
Tony
Смотря как и с какой целью вы применяете язык
Mike_Went
xD
Mike_Went
действительно спам.
Mike_Went
забаньте её уже.
Aydar
нет
"Программирование на языке Lua" хорошая книга
Null
Aydar
почему?
Как минимум она на инглише и к тому же это референс а не учебник.
Null
(ну и в-четвёртых, лично мне хватило и официальной документации, без PIL, для изучения с нуля.
не знаю, что мешает другим 🤷♂️)
Aydar
Aydar
Mike_Went