cmd.exe wrote: Луа уже бесит на слабых машинах тормазами.
За три с лишним года использования Lua в Far, вы, пожалуй, первый, кто пожаловался на тормоза, связанные с применением Lua. Это о многом говорит. Впрочем, жалоба ваша голословная, не подкреплённая никакими конкретными данными.
Исходники теста который в шапке. lua vs AngelScript
Если вы предложите как улучшить код написанный на Lua, в данном сравнении, для улучшения результата буду очень благодарен.
AngelScript — Плагин–обертка
Posted: Thu 28 Jan, 2016 16:54
by Shmuel
Конкретные данные, которые вы должны были привести, это данные о торможении в Far из-за Lua.
А что касается тестов, на которые вы ссылаетесь, то с первого взгляда видно, что их автор слабоват как в Lua, так и в C++. Естественно, я не буду тратить своё время на эти тесты, поскольку AngelScript меня сейчас не интересует.
AngelScript — Плагин–обертка
Posted: Thu 28 Jan, 2016 17:05
by cmd.exe
Shmuel wrote: Конкретные данные, которые вы должны были привести, это данные о торможении в Far из-за Lua.
Конкретно, само использование макросов выполняется очень медленно, иногда приходится использовать машины которые в утиль не списали с каким-нибудь Celeron 2.3 на 478-ом. Клавишные макросы выполняются медленно. Тот-же SciTE или Vim форматируют быстрее.
AngelScript — Плагин–обертка
Posted: Thu 28 Jan, 2016 17:10
by Shmuel
cmd.exe wrote: Конкретно, само использование макросов выполняется очень медленно, иногда приходится использовать машины которые в утиль не списали с каким-нибудь Celeron 2.3 на 478-ом. Клавишные макросы выполняются медленно.
Это НЕ конкретно. Конкретно, это пример макроса с его кодом и замер времени исполнения. Пока этого нет, не о чем говорить.
AngelScript — Плагин–обертка
Posted: Thu 28 Jan, 2016 18:36
by cmd.exe
Shmuel wrote:Это НЕ конкретно. Конкретно, это пример макроса с его кодом и замер времени исполнения. Пока этого нет, не о чем говорить.
Выше пример от DDMZ прямого обращения к Стандартным методам. С таймингами. Я-же не буду в фаре при помощи lua число Фибоначчи вычислять каждый день.
Производительность Lua
Posted: Thu 28 Jan, 2016 18:49
by Shmuel
cmd.exe wrote: Выше пример от DDMZ прямого обращения к Стандартным методам. С таймингами. Я-же не буду в фаре при помощи lua число Фибоначчи вычислять каждый день.
Будьте здоровы.
Производительность Lua
Posted: Thu 28 Jan, 2016 20:45
by Karagy
Shmuel wrote:А что касается тестов, на которые вы ссылаетесь, то с первого взгляда видно, что ...
Каюсь, как увидел эти тесты - тут-же вспомнил известный анекдот:
- Доктор! В зале есть доктор?!
- Я доктор!
- Коллега! Что за херню нам показывают?! Компилятор выбросит "++a;"?
NightRoman wrote:Lua чуть ли не сразу после С идет
и там ещё не luajit. да и как бы все в курсе. поэтому совет топикстартеру подкреплять свои слова более весомыми аргументами, нежели ссылками на какие-то мутные тесты ни о чём. если таковых нет, то продолжать не стоит.
Производительность Lua
Posted: Thu 28 Jan, 2016 22:24
by DrKnS
NightRoman wrote: Lua чуть ли не сразу после С идет
зачем сравнивать не jit реализации, если есть jit?
trucer - замена одноимённого плагина
Posted: Mon 12 Sep, 2016 09:48
by John Doe
raven428 wrote: попробовал отсюда на коленке trim7, разницы особо не заметил. надо с замерами тестировать, но пока не могу себе позволить выделить на это время.
Зачем trim7, у вас проще: string.match(str,"(.+)%s+$")
Скорость "тримминга" отличается на порядок
function bench(f,...)
local start = Far.UpTime
for i=1,1000000 do
f(...)
end
return (Far.UpTime-start)/1000
end
local F = far.Flags
local str = ("."):rep(20).." "
local function f1()
return string.match(str,"(.+)%s+$")
end
local function f2()
return mf.trim(str,2)
end
far.Show(f1(),bench(f1),f2(),bench(f2))
Но это лишь иллюстрация ненужности mf.trim, потому что в данном случае узким местом скорее являются преобразования строк c/lua и utf16/utf8.
А значит можно попробовать использовать editor.GetStringW/editor.SetStringW, и/или ffi.
P.S.
У меня исключительно спортивного интерес, я не вовсе утверждаю что имеющаяся производительность недостаточна.