Как повысить производительность кода?

Автор Тема: Как повысить производительность кода?  (Прочитано 4202 раз)

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

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

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Здравствуйте,
Вопрос про повышение производительности кода. При выполнении моего кода система ограничивает производительность Автокад. Как изменить это поведение? Как поднять приоритет исполнения моего кода и повысить производительность? Обрабатываю друг за другом 6 чертежей размером по 6 Мб.



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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Atomohod,
Никак. Так как AutoCAD использует только одно ядро процессора в большинстве операций, то дополнительной производительности ты не получишь. Увеличить производительность теоретически можно запуском параллельно нескольких AcCoreConsole, каждая из которых обрабатывала бы свой чертеж. Но и тут возможны подводные камни (например, нельзя использовать классы и методы из acmgd.dll).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
запуском параллельно нескольких AcCoreConsole
А есть попытки/примеры таких программ?

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

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

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 809
  • Карма: 166
    • Мои плагины к Автокаду
Если требуется сложная вычислительная обработка, то вариант такой: считываем данные из чертежа в свои объекты, в потокобезопасные коллекции. обрабатываем параллельно-многопоточно без использования API Автокада. Записываем обратно в чертежи результаты. Причем замена даже простейших безопасных вызовов API на свой код может дать 10и кратный выигрыш в производительности.

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

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
То есть нужно создать свои обертки над объектами Автокада? А насколько глубоко их нужно клонировать?

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 809
  • Карма: 166
    • Мои плагины к Автокаду
Нет. Обертки не помогут если пытаться хранить в них неуправляемые объекты DisposableWrapper и пытаться вызывать методы API из других потоков. Это все приводит к фаталам сколько не оборачивай. Надо просто извлечь НУЖНЫЕ вам данные. Например чтоб в параллельном цикле найти пересечения всех линий со всеми, достаточно запомнить координаты всех концов всех линий и больше не обращаться к API пока не будут готовы все результаты. Далеко не всегда имеет смысл программировать такой велосипед.

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 534
  • Карма: 117
При выполнении моего кода система ограничивает производительность Автокад. Как изменить это поведение? Как поднять приоритет исполнения моего кода и повысить производительность?
А если "прогуглить" по сообщению на скриншоте?
http://master-gadgets.ru/kak-otkljuchit-prilozhenija-uwp-rabotajushhie-v

У меня общая галочка отключена и также для всех приложений.

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
А как связан AutoCAD и UWP?

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 534
  • Карма: 117
А как связан AutoCAD и UWP?
Если хочешь помощи, то сначала проверь не включено ли у тебя AutoCAD как фоновое приложение. И отпишись.
А потом уже вопросы задавай.

Вот еще ссылка
https://zen.yandex.ru/media/mywebpc.ru/chto-za-znachki-poiavilis-v-dispetchere-zadach-windows-10-april-1803-5afaa1ce5a104f8cefdf8d32

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
А потом уже вопросы задавай.
Что такое UWP?


Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 534
  • Карма: 117
Что такое UWP?
Берешь вопросик, копируешь в буфер обмена, открываешь браузер, вставляешь в поисковик и т.д......

Вопрос к Autodesk напрямую не относится.
Сконцентрируйся на сообщении windows "процесс приостановлен".
Лучше разобраться, почему и в каких случаях Windows выдает такое предупреждение и какие настройки Windows  доступны для этого.

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Берешь вопросик, копируешь в буфер обмена, открываешь браузер, вставляешь в поисковик и т.д......
Спасибо капитан!

PS Но это всё печально.