Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизЕсли тебе интересен 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;
Скачать: [xml.tar.bz2];
Память: 0.63 MB
Время: 0.081 c