Производительность Lua

Здесь обсуждается всё, что касается макросов.
User avatar
Aidar
Posts: 524
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 7 times
Been thanked: 6 times
Contact:

Производительность Lua

Post by Aidar » Thu 28 Jan, 2016 15:05

cmd.exe wrote: Как выяснилось...
Недостаточное знание языка и транслятора может привести к интересным результатам.

Примечание модератора:
Смежная тема: viewtopic.php?f=15&t=7822
Last edited by HaRT on Thu 28 Jan, 2016 18:51, edited 1 time in total.
Reason: Добавлена ссылка на исходную тему

Shmuel
Posts: 5096
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 140 times

AngelScript — Плагин–обертка

Post by Shmuel » Thu 28 Jan, 2016 15:17

cmd.exe wrote: Луа уже бесит на слабых машинах тормазами.
За три с лишним года использования Lua в Far, вы, пожалуй, первый, кто пожаловался на тормоза, связанные с применением Lua. Это о многом говорит. Впрочем, жалоба ваша голословная, не подкреплённая никакими конкретными данными.

User avatar
cmd.exe
Posts: 317
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 168 times
Been thanked: 5 times
Contact:

AngelScript — Плагин–обертка

Post by cmd.exe » Thu 28 Jan, 2016 16:31

Shmuel wrote:не подкреплённая никакими конкретными данными.
Исходники теста который в шапке. lua vs AngelScript
Если вы предложите как улучшить код написанный на Lua, в данном сравнении, для улучшения результата буду очень благодарен.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

Shmuel
Posts: 5096
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 140 times

AngelScript — Плагин–обертка

Post by Shmuel » Thu 28 Jan, 2016 16:54

Конкретные данные, которые вы должны были привести, это данные о торможении в Far из-за Lua.
А что касается тестов, на которые вы ссылаетесь, то с первого взгляда видно, что их автор слабоват как в Lua, так и в C++. Естественно, я не буду тратить своё время на эти тесты, поскольку AngelScript меня сейчас не интересует.

User avatar
cmd.exe
Posts: 317
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 168 times
Been thanked: 5 times
Contact:

AngelScript — Плагин–обертка

Post by cmd.exe » Thu 28 Jan, 2016 17:05

Shmuel wrote: Конкретные данные, которые вы должны были привести, это данные о торможении в Far из-за Lua.
Конкретно, само использование макросов выполняется очень медленно, иногда приходится использовать машины которые в утиль не списали с каким-нибудь Celeron 2.3 на 478-ом. Клавишные макросы выполняются медленно. Тот-же SciTE или Vim форматируют быстрее.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

Shmuel
Posts: 5096
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 140 times

AngelScript — Плагин–обертка

Post by Shmuel » Thu 28 Jan, 2016 17:10

cmd.exe wrote: Конкретно, само использование макросов выполняется очень медленно, иногда приходится использовать машины которые в утиль не списали с каким-нибудь Celeron 2.3 на 478-ом. Клавишные макросы выполняются медленно.
Это НЕ конкретно. Конкретно, это пример макроса с его кодом и замер времени исполнения. Пока этого нет, не о чем говорить.

User avatar
cmd.exe
Posts: 317
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 168 times
Been thanked: 5 times
Contact:

AngelScript — Плагин–обертка

Post by cmd.exe » Thu 28 Jan, 2016 18:36

Shmuel wrote:Это НЕ конкретно. Конкретно, это пример макроса с его кодом и замер времени исполнения. Пока этого нет, не о чем говорить.
Выше пример от DDMZ прямого обращения к Стандартным методам. С таймингами. Я-же не буду в фаре при помощи lua число Фибоначчи вычислять каждый день.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

Shmuel
Posts: 5096
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 140 times

Производительность Lua

Post by Shmuel » Thu 28 Jan, 2016 18:49

cmd.exe wrote: Выше пример от DDMZ прямого обращения к Стандартным методам. С таймингами. Я-же не буду в фаре при помощи lua число Фибоначчи вычислять каждый день.
Будьте здоровы.

Karagy
Posts: 56
Joined: Tue 02 May, 2006 08:43
Location: Питер
Been thanked: 3 times

Производительность Lua

Post by Karagy » Thu 28 Jan, 2016 20:45

Shmuel wrote:А что касается тестов, на которые вы ссылаетесь, то с первого взгляда видно, что ...
Каюсь, как увидел эти тесты - тут-же вспомнил известный анекдот:
- Доктор! В зале есть доктор?!
- Я доктор!
- Коллега! Что за херню нам показывают?! Компилятор выбросит "++a;"?

User avatar
NightRoman
Posts: 5849
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

Производительность Lua

Post by NightRoman » Thu 28 Jan, 2016 21:37

http://dada.perl.it/shootout/craps.html
Lua чуть ли не сразу после С идет

User avatar
zg
zero-gravity
Posts: 5240
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

Производительность Lua

Post by zg » Thu 28 Jan, 2016 22:12

NightRoman wrote:Lua чуть ли не сразу после С идет
и там ещё не luajit. да и как бы все в курсе. поэтому совет топикстартеру подкреплять свои слова более весомыми аргументами, нежели ссылками на какие-то мутные тесты ни о чём. если таковых нет, то продолжать не стоит.

User avatar
DrKnS
Posts: 4562
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 113 times
Contact:

Производительность Lua

Post by DrKnS » Thu 28 Jan, 2016 22:24

NightRoman wrote: Lua чуть ли не сразу после С идет
А С++ после Python? С после Java? Ну-ну.

User avatar
cmd.exe
Posts: 317
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 168 times
Been thanked: 5 times
Contact:

Производительность Lua

Post by cmd.exe » Fri 29 Jan, 2016 16:37

zg wrote:и там ещё не luajit
Так и AngelScript-JIT не использовался.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

User avatar
zg
zero-gravity
Posts: 5240
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

Производительность Lua

Post by zg » Fri 29 Jan, 2016 19:29

зачем сравнивать не jit реализации, если есть jit?

User avatar
John Doe
Бюрократ
Posts: 11095
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 66 times

trucer - замена одноимённого плагина

Post by John Doe » Mon 12 Sep, 2016 09:48

raven428 wrote: попробовал отсюда на коленке trim7, разницы особо не заметил. надо с замерами тестировать, но пока не могу себе позволить выделить на это время.
Зачем trim7, у вас проще: string.match(str,"(.+)%s+$")
Скорость "тримминга" отличается на порядок
Но это лишь иллюстрация ненужности mf.trim, потому что в данном случае узким местом скорее являются преобразования строк c/lua и utf16/utf8.
А значит можно попробовать использовать editor.GetStringW/editor.SetStringW, и/или ffi.

P.S.
У меня исключительно спортивного интерес, я не вовсе утверждаю что имеющаяся производительность недостаточна.

User avatar
zg
zero-gravity
Posts: 5240
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

trucer - замена одноимённого плагина

Post by zg » Mon 12 Sep, 2016 10:33

John Doe wrote:Скорость "тримминга" отличается на порядок
у меня в 4,5 раза. а вот если пробелы на конце убрать, то match дольше в 6 раз. а ведь отсутствие пробелов в среднем будет гораздо чаще встречаться. я у себя в макро аналоге [esc] такое использую:

Code: Select all

KillSpaces1=(id,lineno,mms=false,spaces=true,eol)->
  line=editor.GetString id,lineno,0
  eol=(eol and line.StringEOL\len!>0) and eol or line.StringEOL
  replaces=0
  if spaces and (not mms or line.StringText!="-- ") then line.StringText,replaces=line.StringText\gsub "%s+$",""
  if replaces>0 or eol!=line.StringEOL then editor.SetString id,lineno,line.StringText,eol
оно примерно как mf.trim по скорости, если заменить на string.gsub — будет в два раза быстрее. ну и по идее на длинных строках за счёт отсутствия сравнения будет тоже небольшой выигрыш. судя по всему gsub больше тормозит с увеличением длины строки, чем сравнение.

Post Reply

Return to “Обсуждение макросов”