Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Если тебе интересен Lua в Delphi   Найти похожие ветки 

 
DVM ©   (2012-09-16 23:12) [40]


> DevilDevil ©   (16.09.12 21:13) [39]


> у меня свои приоритеты

тогда не найдешь ты людей


 
DevilDevil ©   (2012-09-16 23:16) [41]

> DVM ©   (16.09.12 23:12) [40]

уже нашёл
осталось всего пару областей "не закрытых"

и то все эти области второстепенны


 
Jeer ©   (2012-09-16 23:35) [42]

Для меня Lua самодостаточный язык, которым пользуюсь иногда в рамках самодостаточности, иногда в рамках Femm.
http://www.femm.info/wiki/HomePage


 
DevilDevil ©   (2012-09-17 00:38) [43]

> Jeer ©   (16.09.12 23:35) [42]

Ну да
есть и LuaJIT, и много либ для юзания функций ОС например
не знаю
лично мне как-то дискомфортно писать всё приложение на языке с динамической типизацией и простыми типами. Я использую Lua только по его прямому назначению.


 
Inovet ©   (2012-09-17 01:08) [44]

Удалено модератором


 
Германн ©   (2012-09-17 01:28) [45]


> DVM ©   (16.09.12 23:12) [40]
>
>
> > DevilDevil ©   (16.09.12 21:13) [39]
>
>
> > у меня свои приоритеты
>
> тогда не найдешь ты людей
>

Неужели столь многих отпугивает ассемблер?


 
Inovet ©   (2012-09-17 01:31) [46]

Удалено модератором


 
Германн ©   (2012-09-17 02:13) [47]

Удалено модератором


 
Inovet ©   (2012-09-17 08:19) [48]

> [47] Германн ©   (17.09.12 02:13)
> Давай не будем переходить на личности в их отсутствие.

О да, ассемблер - личность.:) Но даже когда его не видно, он незримо присутсвует за каждой строчкой кода.

Имхо, зря на автора наехали по поводу асм вставок. Если они существенно улучшают производительность, и средствами Делфи её невозможно улучшить, так чем плохо. А на сколько, кстати, улучшают? На 5-10% или в 5-10 раз?


 
Jeer ©   (2012-09-17 09:10) [49]


> А на сколько, кстати, улучшают?


Например, asm-аналог функции Trim() выполняется в 4-5 раз быстрее.


 
Inovet ©   (2012-09-17 09:22) [50]

> [49] Jeer ©   (17.09.12 09:10)
> Например, asm-аналог функции Trim() выполняется в 4-5 раз
> быстрее.

Отдельные функции - понятно, могут. Я про данный проект, как я понял, - это обёртка над движком.


 
DevilDevil ©   (2012-09-17 09:45) [51]

из документации:

Второй “минус” – не идеальная производительность. Все мы должны понимать, что использование Lua API напрямую чисто теоретически даёт лучшую производительность, нежели при использовании универсальной библиотеки. С другой стороны, все используют универсальные решения потому, что универсальные подходы минимизируют рутину. Так вот CrystalLUA как универсальная система скорее всего работает быстрее аналогичных систем. Связано это с тщательно продуманными и реализованными схемами взаимодействия Lua с нативным кодом, умным менеджментом памяти, ассемблерной реализацией в узких местах. Существует мнение, что такой скрупулёзный подход к оптимизации не оправдан в случае со скриптами. Не знаю. Мне греет душу мысль, что я выжал максимум производительности.


 
Jeer ©   (2012-09-17 10:04) [52]

Автору виднее, где переход на asm райциональнее, ну или по идеологическим соображениям.
На мой взгляд, для скриптовых языков, которые не транслируются в байт-код, применение asm-а вряд ли даст заметный выигрыш..

Особенно вот такие, как у автора, трансляции:

function IncludePathDelimiter(const S: string): string;
asm
 jmp SysUtils.IncludeTrailingPathDelimiter
end;


 
DVM ©   (2012-09-17 10:08) [53]


> Германн ©   (17.09.12 01:28) [45]


> Неужели столь многих отпугивает ассемблер?

Не знаю как другие, но я стараюсь избегать использование чужого кода со вставками на ассемблере. И дело даже не в том, что я его можно сказать что практически не знаю. Дело в том, что в обычном коде (если это не какая либо защита или какой то финт ушами, который средствами языка не провернуть, а очень надо или очень-очень критичный до быстродействия кусок) - это ловля блох и попытка выиграть какие то проценты производительности (в целом по всей программе) ценой полной несопровождаемости программы, ценой непереносимости на другие архитектуры (даже при переходе от 32 бит к 64 будут проблемы). Ну и зачем делать машанину кода на ассемблере и паскале? Я не вижу смысла.


 
знайка   (2012-09-17 10:24) [54]


> из документации:
Так она еще и не производительная? :)


 
Jeer ©   (2012-09-17 10:42) [55]


> но я стараюсь избегать использование чужого кода со вставками
> на ассемблере.


За исключением высоко-оптимизированных функций или библиотек, которым можно доверять и применение которых оправдано - аналогично, не использую.


 
DevilDevil ©   (2012-09-17 11:20) [56]

> Jeer ©   (17.09.12 10:04) [52]
> DVM ©   (17.09.12 10:08) [53]

я достаточно давно интересуюсь высокопроизводительным программированием. Использую и ЯВУ, и ассемблер, и С++ интрисинки. Прекрасно взвешиваю различные подходы и выбираю на мой взгляд оптимальный путь, согласно приоритетам. Поэтому, дорогие участники дискуссии, если у вас есть острая потребность поделиться друг с другом авторитетными мнениями на счёт выбранных подходов в той или иной библиотеке - создайте пожалуйста свою ветку. Лично мне ничего нового по оптимизации вы не скажете. И я не для того создал эту ветку, чтобы познакомиться с очередным "форумным умником". Прежде чем отписать что-то в этой ветке - подумайте, будет ли мне это полезно и насколько. Иногда лучше ничего не писать, чем писать своё "авторитетное" мнение.


 
Jeer ©   (2012-09-17 11:43) [57]


> подумайте, будет ли мне это полезно и насколько.


Да ну ?

Впрочем, на Ваш проект внимание обратили, это факт :)


 
DevilDevil ©   (2012-09-17 11:50) [58]

> Впрочем, на Ваш проект внимание обратили, это факт :)

я не зарабатываю денег от того, обращают на мою библиотеку внимание или нет.
сейчас мне это практически не важно.
ветка создана с определённой целью. Кому-то эта цель близка, кому-то нет.


 
Jeer ©   (2012-09-17 11:58) [59]

Я, вроде, о деньгах ни слова :)


 
DVM ©   (2012-09-17 12:03) [60]


> DevilDevil ©   (17.09.12 11:20) [56]

Зря ты так, я тебе дело говорю по поводу ассемблерных вставок. Если твоя цель - сделать библиотеку для себя и пары-тройки энтузиастов, которые вникли в хитросплетения кода на ASM - это одно, совсем другое - сделать ее доступной всем и (неплохо бы) известной. Во втором случае ASM будет помехой развитию.


 
DevilDevil ©   (2012-09-17 12:14) [61]

> DVM ©   (17.09.12 12:03) [60]

Давай я тебя немножечко поучу

В любом деле, чтобы определить, что плохо, а что хорошо - надо расставить приоритеты. Для чего вообще нужна библиотека CrystalLUA? Для того чтобы максимально облегчить труд программиста при связывании скриптов на Lua и своего нативного кода. Какие основные требования к такому средству? Конечно же удобство. Т.е. чтобы возможностей было много, каждая возможность была интуитивно понятна, чтобы каждая возникшая ошибка была автоматически определена и максимально локализована. В качестве дополнительного требования - чтобы такой универсальный подход не бил по производительности. Всем этим требованиям библиотека удовлетворяет, а будет удовлетворять ещё больше.

Что хорошо и плохо согласно твоим личным приоритетам - лишняя информация для меня. Я тебя выслушал, обмозговал, сделал выводы.


 
app ©   (2012-09-17 12:18) [62]

Опять стремишь наезжать, зря и эта ветка будет закрыта. Так что веди себя спокойно и индентиферентно.


 
DevilDevil ©   (2012-09-17 12:27) [63]

Удалено модератором


 
Inovet ©   (2012-09-17 13:17) [64]

> [52] Jeer ©   (17.09.12 10:04)
> jmp SysUtils.IncludeTrailingPathDelimiter

Не, джамп в функцию - это некошерно. Сразу же надо, чтобы одинаковые фреймы были, а выигрыш близок к нулю.


 
Германн ©   (2012-09-17 13:42) [65]


> Особенно вот такие, как у автора, трансляции:
>
> function IncludePathDelimiter(const S: string): string;
> asm
>  jmp SysUtils.IncludeTrailingPathDelimiter
> end;

Хм. Такие асм-вставки мне тоже не нравятся.


 
app ©   (2012-09-17 13:43) [66]

Не надо указывать другим пользователямЮ после того как ты опубликовал тему, ты ее сделал публичной.

И не надо спорить с модератором. Я последний раз пропускаю подобное.


 
DevilDevil ©   (2012-09-17 14:28) [67]

Удалено модератором


 
Kerk ©   (2012-09-17 14:37) [68]


> DevilDevil ©   (17.09.12 14:28) [67]

Ты бы лучше объяснил что конкретно тебе дают такого рода оптимизации:

function IncludePathDelimiter(const S: string): string;
asm
 jmp SysUtils.IncludeTrailingPathDelimiter
end;


 
DevilDevil ©   (2012-09-17 14:45) [69]

> Kerk ©   (17.09.12 14:37) [68]
> Ты бы лучше объяснил что конкретно тебе дают такого рода
> оптимизации:


Библиотека компилируется в двух режимах: самостоятельная, и в режими совместимости с движком CrystalEngine (используя модуль SysUtilsEx). Функция IncludePathDelimiter есть враппер над IncludeTrailingPathDelimiter() и существует только потому что IncludePathDelimiter() лично мне кажется удобнее и понятнее. Пользователь CrystalLUA эту функцию не видит.

Почему здесь джамп, а не обычный вызов:
function IncludePathDelimiter(const S: string): string;
begin
 Result := IncludeTrailingPathDelimiter(S);
end;


Можно было этого не делать. Но я эстет. И я знаю что в обычной pascal реализации будет создан try/finalize код для обслуживания временной строковой переменной


 
DVM ©   (2012-09-17 14:50) [70]


> DevilDevil ©   (17.09.12 14:28) [67]


> Любое некорректное высказывание в адрес моего детища

А какое из высказываний было некорректным? По-моему тут все предельно корректны, указывают на потенциальные недостатки, хоть ты и не просил, но тут же форум в конце концов.

Как можно делать проект открытым и призывать в него людей, если психовать по поводу каждого коммита в проекте, расходящегося с твоим мнением или бага, обнаруженного в твоем безупречном детище?


 
DevilDevil ©   (2012-09-17 14:52) [71]

> Kerk © (17.09.12 14:37) [68]

хех, оказалось в данном случае он нормально всё обрабатывает. К сожалению Delphi компилирует не всегда оптимальный код, особенно это касается сложных типов (строки, варианты, интерфейсы, динамические массивы)


 
Inovet ©   (2012-09-17 14:55) [72]

Удалено модератором


 
DevilDevil ©   (2012-09-17 14:59) [73]

Удалено модератором


 
DevilDevil ©   (2012-09-17 15:02) [74]

Удалено модератором


 
Kerk ©   (2012-09-17 15:17) [75]


> DevilDevil ©   (17.09.12 14:45) [69]

Ну дело, конечно, хозяйское. Но мне кажется, что это ловля мух. Сколько же тысяч (сотен тысяч? миллионов?) раз подряд должна быть вызвана эта функция, чтобы выигрыш от такой оптимизации стал заметен? Все-таки такие микрооптимизации в ущерб смыслу, имхо, зло.

Надеюсь, не примешь за некорректное высказывание :)


 
Inovet ©   (2012-09-17 15:19) [76]

> [74] DevilDevil ©   (17.09.12 15:02)

Ты тут всем раздаёшь ценные указания, позволь, и я тебе дам совет. Следует отличать высказывание мнения, притом обоснованного, от оскорбления в адрес твоего бесспорно любимого детища и тебя лично.


 
Jeer ©   (2012-09-17 15:21) [77]


> DevilDevil ©   (17.09.12 15:02) [74]


"Не держи других за дураков и они станут к тебе относится как к умному, возможно" (С)

На асме такие штучки, как jump в функцию действительно используются, но при прослойке "компилятор[ы]", такие технические приемы могут вызвать недоверие к внедрению asm-а.

А то, что ты сделал переименование под свое восприятие Мира - в яслях будешь объяснять.

Вот и все.

А так, да - развлекайся со своей биб-кой, сколько душе угодно.


 
Inovet ©   (2012-09-17 15:24) [78]

> [75] Kerk ©   (17.09.12 15:17)
> Все-таки такие микрооптимизации в ущерб смыслу, имхо, зло.

Не только в ущерб смыслу, но о потенциально в ущерб надёжности.


 
DevilDevil ©   (2012-09-17 15:26) [79]

> Надеюсь, не примешь за некорректное высказывание :)

не восприниму )

я всегда в таких моментах говорю "есть вещи дороже чем деньги, есть вещи важнее чем секс". Работа должна приносить удовольствие. А я эстет. И мне стрёмно понимать, что какие то там переменные могут создаваться и удаляться в finally для такой милипизерной функции-враппера. Так что считай эту функцию не оптимизированной по скорости выполнения, а оптимизированной по удовольствию в её использовании )


 
DevilDevil ©   (2012-09-17 15:32) [80]

> Inovet ©   (17.09.12 15:19) [76]

> Следует отличать высказывание мнения, притом обоснованного,
>  от оскорбления в адрес твоего бесспорно любимого детища
> и тебя лично.


Давай и я пролью свет на твоё мировосприятие. Существует грань между мнением и оскорблением(критикой). Она тонка, но она существует. Когда человек высказывает мнение, он концентрирует внимание на себе (как это делает Kerk). Когда человек оскорбляет(критикует) - он концентрирует внимание на объекте/человеке, залезая, как я уже сказал, на чужую "территорию". Начинай все свои предложения с "мне кажется может быть", и я вряд ли буду расценивать их как оскорбления



Страницы: 1 2 3 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.65 MB
Время: 0.054 c
2-1342077313
AAsdr
2012-07-12 11:15
2013.03.22
MOuseMove и ширина понели на StatusBar


4-1258554833
Егорка
2009-11-18 17:33
2013.03.22
Интерфейсы


2-1338196726
leklerk
2012-05-28 13:18
2013.03.22
Не работает WinExec


4-1258957583
pg81
2009-11-23 09:26
2013.03.22
Как получить в переменную frm:TForm зная Handle окна?


8-1230712152
Программер
2008-12-31 11:29
2013.03.22
Как узнать кодек и разрешение видеофайла?