Сравнение производительности VisualLisp и .NET

Автор Тема: Сравнение производительности VisualLisp и .NET  (Прочитано 2355 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2468
  • Карма: 698
  • LISP/C#, AutoCAD/Civil 3D
  • Skype: zagor_dmtr
В понедельник можно будет сравнить этот способ с тем, который я нацарапаю. Добавь (если тебе не сложно) в обозначенный LISP пару строк кода, сообщающих о времени выполнения, чтобы можно было более точно сравнивать в т.ч. и по временным затратам.
Сравнивать NET и LISP в скорости все равно что гоночный болид и велосипед :) Для чистоты эксперимента, надо на NET переписать.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13177
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Сравнивать NET и LISP в скорости все равно что гоночный болид и велосипед
Не всегда. Думаю, что LISP не выиграет почти ни при каких условиях, но длительность операций типа GetPointAtParameter зависит от скорости ядра AutoCAD, а не от языка программирования.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Если требуется написать функцию под большое число элементов, лисп, как ни странно, работает быстрее  - я как-то хотел "форсировать" такую  - получилось наоборот (причем заметно даже "на глаз"), накладные расходы на преобразование аргументов нивелировали скорость обработки... Попробуйте сами - напишите .Net функцию которая складывает свои аргументы и сравните с (+ ...).
з.ы. сравнивать лисп и .Net по скорости можно только помножив на коэффицент скорости разработки.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13177
  • Карма: 1701
  • Рыцарь ObjectARX
  • Skype: rivilis
Попробуйте сами - напишите .Net функцию которая складывает свои аргументы и сравните с (+ ...).
Безусловно. Аналогично и с ObjectARX. И причина в том, что выделяется память под список resbuf, аргументы преобразовываются в список resbuf, производится поиск соответствующей функции в таблице функций и передача ей указателя на этот список. А если еще функция должна вернуть список, то это вообще... Например "дешевле" передать ObjectId (точнее ENAME) и получать на .NET или ObjectARX DXF-список, чем передавать DXF-список из LISP в .NET или ObjectARX.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение