Странные проблемы с производительностью.

Автор Тема: Странные проблемы с производительностью.  (Прочитано 32137 раз)

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

Оффлайн DebalanceАвтор темы

  • ADN Club
  • ****
  • Сообщений: 421
  • Карма: 16
    • Advanced software for AutoCAD
  • Skype: Debalance
Убедись, что перед запуском твоего приложения AutoCAD использует 0% CPU.
Ну да, так и есть.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Выложи полностью проект. Может там что-то не то...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DebalanceАвтор темы

  • ADN Club
  • ****
  • Сообщений: 421
  • Карма: 16
    • Advanced software for AutoCAD
  • Skype: Debalance
Вот он.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
На первый взгляд я ничего криминального не увидел, но было бы лучше если бы ты сделал проект при помощи ObjectARX Wizard - меньше вероятность того, что какая-то из опций компилятора/линкера не правильна.
Ну и MS VS Express - это не тот инструмент, который следует использовать для создания arx-приложений.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DebalanceАвтор темы

  • ADN Club
  • ****
  • Сообщений: 421
  • Карма: 16
    • Advanced software for AutoCAD
  • Skype: Debalance
Ну и MS VS Express - это не тот инструмент...
А чем он плох? Для простых приложений (класса "Хеллоу ворлд") где не требуется MFC и прочие премудрости - он очень даже ничего... Кроме того есть вполне официальный документ, которым можно смело руководствоваться при создании приложений (в нём визард рассматривается всего лишь как альтернатива). Так что всё законно ))).

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
А чем он плох?
Насколько я понимаю он не допускает оптимизации кода. Возможно это не все его недостатки.
Кроме того есть вполне официальный документ, которым можно смело руководствоваться при создании приложений (в нём визард рассматривается всего лишь как альтернатива). Так что всё законно ))).
Документ явно устаревший. Обрати внимание на упоминание в нём acdb18.lib. Т.е. это соотвествует максимум ObjectARX 2012 и Visual Studio 2008.
Визард действительно лишь альтернатива, но с каждым годом требуется следить за большим и большим числом опций компилятора/линкера и это становится очень затруднительным.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Я убрал из кода boost, создал новый проект при помощи ObjectARX Wizard и приготовил для тебя StdVectorTest-x64.arx с командой Vector_Test
Попробуй.
Мои результаты:
Command: APPLOAD
StdVectorTest-x64.arx successfully loaded.
Command: VECTOR_TEST
Time1: <202.801300 milliseconds>
Time2: <93.600600 milliseconds>
Command: VECTOR_TEST
Time1: <187.201200 milliseconds>
Time2: <78.000500 milliseconds>
Command: VECTOR_TEST
Time1: <171.601100 milliseconds>
Time2: <93.600600 milliseconds>
Command: VECTOR_TEST
Time1: <187.201200 milliseconds>
Time2: <62.400400 milliseconds>
Command: VECTOR_TEST
Time1: <187.201200 milliseconds>
Time2: <93.600600 milliseconds>
Command: VECTOR_TEST
Time1: <218.401400 milliseconds>
Time2: <93.600600 milliseconds>
Command: VECTOR_TEST
Time1: <202.801300 milliseconds>
Time2: <78.000500 milliseconds>
Command: VECTOR_TEST
Time1: <202.801300 milliseconds>
Time2: <78.000500 milliseconds>
Command: VECTOR_TEST
Time1: <218.401400 milliseconds>
Time2: <78.000500 milliseconds>
Command: VECTOR_TEST
Time1: <187.201200 milliseconds>
Time2: <93.600600 milliseconds>
Command: VECTOR_TEST
Time1: <202.801300 milliseconds>
Time2: <78.000500 milliseconds>
Код измеряет пользовательское время текущей Thread в операции создания/заполнения и удаления объектов контейнера.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DebalanceАвтор темы

  • ADN Club
  • ****
  • Сообщений: 421
  • Карма: 16
    • Advanced software for AutoCAD
  • Skype: Debalance
Запустил, протестировал. Попрежнему разница существенная между 2015 и 2016, особенно при удалении:

AutoCAD 2015:
Command: APPLOAD
StdVectorTest-x64.arx successfully loaded.
Command: VECTOR_TEST
Time1: <140.625000 milliseconds>
Time2: <93.750000 milliseconds>
Command:
VECTOR_TEST
Time1: <109.375000 milliseconds>
Time2: <109.375000 milliseconds>

AutoCAD 2016:
Command: APPLOAD
StdVectorTest-x64.arx successfully loaded.
Command: VECTOR_TEST
Time1: <312.500000 milliseconds>
Time2: <5890.625000 milliseconds>
Command:
VECTOR_TEST
Time1: <296.875000 milliseconds>
Time2: <5906.250000 milliseconds>

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
У меня идеи закончились. Разве что у тебя внутри AutoCAD 2016 подменён обработчик set_new_handler (https://msdn.microsoft.com/ru-ru/library/5fath9te.aspx). Кто и как это сделал для меня секрет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DebalanceАвтор темы

  • ADN Club
  • ****
  • Сообщений: 421
  • Карма: 16
    • Advanced software for AutoCAD
  • Skype: Debalance
У меня идеи закончились.
У меня тоже закончились вместе с терпением ковырять эту проблему дальше... Тем не менее спасибо за поддержку.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Кажется появилась новая идея в связи с копанием с вот этой темой: http://adn-cis.org/forum/index.php?topic=7477.msg23674#new
Посмотри в сторону обновлений VS 2015. Похоже Update 2 что-то там серьезно меняет в STL:  https://blogs.msdn.microsoft.com/vcblog/2016/04/14/stl-fixes-in-vs-2015-update-2/

Ooops!!! Я промахнулся. Это же  2016 и VS 2012...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение