Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1332500814
alex810810
2012-03-23 15:06
2013.03.22
Передача параметра со значение NULL


15-1352217376
Evgely
2012-11-06 19:56
2013.03.22
В окне кода вместо текста стали прямоугольники...


15-1346925778
LDV
2012-09-06 14:02
2013.03.22
bat-файлы


15-1334228111
Unknown user
2012-04-12 14:55
2013.03.22
Файл-контейнер с сигнатурой pstorage


2-1337101522
опшипка
2012-05-15 21:05
2013.03.22
опшипка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский