Клавиатурный набор команд и скорость\адекватность реакции AutoCAD 2015

Автор Тема: Клавиатурный набор команд и скорость\адекватность реакции AutoCAD 2015  (Прочитано 8777 раз)

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

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Windows 7 x86 SP1 Rus
AutoCAD 2015 Enu
MS Visual Studio 2013 Premium Enu Update 1
VirtualBox 4.3.10 r93012
Remote Debugging

Давно уже заметил, но сейчас уж как-то сильно стало раздражать и мешать:

Вариант 1 (проблемный).
С клавиатуры быстро набираю "ts" и тут же жму ENTER. Однако порой автокадовский "IntelliSense" не успевает найти и подсветить правильный вариант команды, в результате чего запускается команда "MTEXT" (видимо до нажатия ENTER успев "увидеть" лишь первую букву набранной мною команды и, почему-то, не анализируя последующие).

Обозначенное выше поведение у меня наблюдается, как правило, сразу при старте AutoCAD и открытии нового документа: в это время AutoCAD всё ещё кряхтит, кашляет и отказывается двигать курсор мышки. Чуть позже (через пару секунд) она всё же начинает двигаться: сначала рывками с периодичным замиранием, но затем постепенно "приходит в себя". На это уходит ещё 4-5 секунд. Однако то, что мышка наконец-то начала нормально шевелиться - вовсе не гарантия того, что уже проснулся и автокадовский "IntelliSense" который, по видимому, к моменту ввода мною команд в командную строку всё ещё никак не раскочегарится...

Вариант 2 (рабочий).
С клавиатуры быстро набираю "ts" и жду, когда же AutoCAD в своём порой весьма медленно работающем аналоге "IntelliSense" наконец-то сам найдёт и подсветит тот вариант команды, который я набрал. Как только это происходит - сразу жму ENTER. В этом случае запускается именно то, что я набрал. Порой ждать приходится по 2-3 секунды...

P.S. Обозначенная проблема не специфична для "ts", но применима для любой команды, набранной с клавиатуры (обычно я набираю псевдонимы, прописанные в acad.pgp).

P.S.2 Пишу сюда, поскольку отдельных веток по багам\проблемам AutoCAD не присутствует, что несколько странно, раз уж присутствует даже гораздо менее полезное\интересное "такое".
« Последнее редактирование: 05-05-2014, 11:14:31 от Андрей Бушман »

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Начну с конца.
P.S.2 Пишу сюда, поскольку отдельных веток по багам\проблемам AutoCAD не присутствует, что несколько странно, раз уж присутствует даже гораздо менее полезное\интересное "такое".
1. Если внимательно посмотреть на название сайта и форума, то станет ясно, что он предполагает помощь программистам под продукты Autodesk. Так что предложение работы в нём вполне уместно.
2. Изначально мы отправляли в Autodesk через ADN DevHelp баги и пожелания только по API или на стыке самого продукта и API, так как ADN DevHelp занимается только ими, а остальные пересылает в Technical Product Support. Поэтому отдельной ветки по багам продуктов у нас нет, но нужно будет об этом подумать.

Теперь по существу бага. Ты понимаешь, что у тебя совсем "нештатное" использование AutoCAD и понять проблема ли это самого AutoCAD, или AutoCAD под  отладчиком (а еще и удаленная отладка), или AutoCAD под VirtualBox - слишком сложно? Думаю, что меня пошлют с таким багом очень далеко и мне кажется, что это будет справедливо.
Но если ты настаиваешь, то сделай видео, выложи его на youtube, а я отправлю этот баг в Autodesk.

P.S.: В обычной ситуации (т.е. нормальный запуск AutoCAD 2015 без виртуальной машины и отладчика) у меня этот баг не воспроизводится.

P.S.S.: Кстати подобное поведение я наблюдал когда-то при обычном запуске AutoCAD 2012. Особенно если это первый ввод команды, когда (предполагаю) и создается список команд, т.е. сканируется реестр, все загруженные arx/dll/vlx/lsp/fas и т.д. файлы. Попытался воспроизвести это сейчас - не получилось.


Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Ты понимаешь, что у тебя совсем "нештатное" использование AutoCAD и понять проблема ли это самого AutoCAD, или AutoCAD под  отладчиком (а еще и удаленная отладка), или AutoCAD под VirtualBox - слишком сложно?
Для программистов - очень даже "штатная". Многие из тех, кого я знаю, пишут код и тестируют его именно на виртуальных машинах - это достаточно распространённый способ работы.
Думаю, что меня пошлют с таким багом очень далеко и мне кажется, что это будет справедливо.
Я, пожалуй, не стану это комментировать... Очень удивлюсь, если Автодеск не использует виртуальные машины для тестирования...
Но если ты настаиваешь, то сделай видео, выложи его на youtube, а я отправлю этот баг в Autodesk.
У меня на работе компьютер очень древний: еле тянет две маленькие, одновременно запущенные виртуальные машинки. Причём машинки работают шустро, а сам физ. комп при этом почти лежит на лопатках. Если я запущу на нём запись видео, то он моментально умрёт. Я не настаиваю: нет, так нет.
Попытался воспроизвести это сейчас - не получилось.
У меня это возникает достаточно часто (с 2015-м автокадом). Обращаю ваше внимание на то, что проблема наблюдается при использовании удалённого отладчика. Тот же AutoCAD 2009 (и не только он) просто "летает" при тех же условиях отладки. Вне отладчика, автокадовский "IntelliSense" работает шустрее и обозначенная мною проблема почти не возникает. Причём всё остальное (помимо "IntelliSense"), при использовании удалённой отладки работает без каких-либо ощутимых торможений. Проверить локальную отладку не могу, т.к. на машинке, предназначенной для разработки ПО автокады не установлены.

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Для программистов - очень даже "штатная"
Ты же понимаешь, что основное предназначение AutoCAD - это использование его пользователями, а не программистами. А для пользователей есть системные требования для AutoCAD 2015: http://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/System-requirements-for-AutoCAD-2015.html
Там нет ни слова про виртуальные машины, отладчики и т.д.
Вне отладчика, автокадовский "IntelliSense" работает шустрее и обозначенная мною проблема почти не возникает.
Тем более причина скорее всего в отладчике, как промежуточном звене, который тоже обрабатывает ввод клавиатуры и при быстром нажатии что-то не доходит до обработчика AutoCAD.
Я не настаиваю: нет, так нет.
У меня это не воспроизводится. Если у кого-то воспроизведется и удастся получить видео - то обязательно отправлю.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Тем более причина скорее всего в отладчике, как промежуточном звене, который тоже обрабатывает ввод клавиатуры и при быстром нажатии что-то не доходит до обработчика AutoCAD.
Я думаю, что вы ошибаетесь, поскольку набираемый мною текст корректно отображается в консоли автокада по мере моего ввода. Т.е. когда я набираю ts - это отображается в консоли автокада по мере набора, однако нажав Enter, по факту запускается команда t. Но если я подожду пару секунд, прежде чем нажать Enter, то появится автокадовский "IntelliSense" и подсветит именно ту команду, которая правильна. После этого можно нажимать Enter - всё будет работать нормально.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Похоже, что на наличие\отсутствие обозначенного мною выше поведения влияют мощности компьютера. На домашнем компьютере работает нормально. На рабочем компьютере (Windows 7 x86, процессор Core 2 Duo, 4Гб оперативной памяти) выполнил перераспределение использования  физической памяти - проблема так же исчезла. По умолчанию Windows x86 делит доступную память пополам: 2Гб зарезервировано под операционную систему и 2Гб - под остальные программы. Виртуальным машинкам назначено по 1 Гб. Т.о. под весь остальной софт остаётся ноль... В виду этого виртуальные машинки крутились вполне приемлемо, а на физической машине были полные дрова - даже блокнот открывался по полминуты.

Указал использовать 1Гб под операционку, а всё остальное - под программы. Т.о. под программы хостовой машины отведён 1Гб. Теперь и на хостовой машинке всё стало значительно позитивнее.
« Последнее редактирование: 07-05-2014, 10:26:09 от Андрей Бушман »

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

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Я вот только не понимаю, как перераспределение памяти могло повлиять на обозначенное выше поведение
Не хотел лезть в эту тему - но если вопрос в таком ракурсе - это вполне обычное поведение асинхронных процессов - чтоб ускорить загрузку автокад делает ее паралельно, ждать выполнения всех "некритических" процессов совсем не обязательно (даже не желательно) - не проиндексировал он еще все имена на момент набора команды - соответственно и InteliSennse работает не во всю. Попробуйте напишите сами (или просто представьте алгоритм) на подобную задачу, при условии, что словарь достаточно большой - даже если словарь индексированный (а индекс там должен быть не банальный т.к. смотрит не только на начало, а на сочетание в принципе) - то после каждой буквы надо запускать свой асинхронный процесс - которые, кстати, имеют свойство не очень быстро отвечать, при загруженном процессоре. То есть фактически, для повышения "юзабельности" используется не однозначный алгоритм (то есть появляется неявный аргумент в виде текщей загрузки и лимита времени на выполнение ) - ничего нового тут нет - в общем стандартное поведение любой системы реального времени - в парадигме которой и выполнен "подсказчик".
« Последнее редактирование: 07-05-2014, 10:49:21 от Дима_ »

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Цитировать
это вполне обычное поведение асинхронных процессов
Это через задницу написанная реализация. Синхронизацию потоков в программировании никто не отменял. Неправильное поведение программы не может быть оправдано якобы соображением производительности. Нахрена юзеру быстрая программа, которая делает совсем не то, что он от неё требует? Вопрос риторический. Это не тот случай, когда качество следует жертвовать в угоду количества.

Всё таки физ. машинка слабовата... Когда она загружена, то снова на вирт. машине частенько возникает обозначенная мною проблема. Например на скрине, показанном ниже, я набрал st и нажал Enter. Как видите, автокад увидел, что я набрал st, но на исполнение запустил s. Поскольку это не та команда, которая мною запрашивалась, я жму Esc.

Совершенно логично предположить, что если AutoCAD 2015 будет установлен непосредственно на не самую сильную физ. машинку, то обозначенное "Бинго!" может возникать и на ней.

Цитировать
ждать выполнения всех "некритических" процессов совсем не обязательно (даже не желательно)
Я как раз таки не считаю данный случай "некритическим" - для юзера он очень даже "критический", ибо заставляет его менять стиль своей работы.

Получается, что на слабых машинках, а возможно, что и не только на них, но и на сильных, но несколько загруженных, юзер не может пользоваться псевдонимами, определёнными в acad.pgp, поскольку AutoCAD 2015 будет каждый раз "бросать кубики" на тему того, какую же команду ему запустить на самом деле... В результате юзер должен будет либо набирать команду полностью, либо ему придётся переходить на "мышко-кликанье": в данном случае "кликать" мышкой на кнопках палитр инструментов пользователю будет сподручней, чем каждый раз набирать полное имя команды с клавиатуры. Т.о. файл acad.pgp и идея, заложенная в основу его использования, идут гулять лесом...

P.S. Возможно дело ещё и в том, что AutoCAD 2015 усиленно щимится в Интернет, в т.ч. и создавая дополнительные процессы (тратя на это ресурсы системы), а для вирт. машинок Интернет у меня специально отключен. Заниматься "исследованиями" нет желания и времени.

Обсуждение данной темы завершаю, т.к. это - письма в ведро (имхо).
« Последнее редактирование: 08-05-2014, 11:38:15 от Андрей Бушман »

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

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Получается, что на слабых машинках юзер не может пользоваться псевдонимами,
1. Ну есть такое понятие как системные требования - и я не могу сказать, что для автокада 2015 они слабые.
2. Подсказчики типа IntelliSennse и не подразумевают что на конкретную команду он даст конкретный ответ, если надо так - то напишите в том-же acad.pgp сокращения и хоть трехзначную цифру каждой команде назначайте (кстати такой способ названия "своих" команд рекомендовал С.Зуев - он же ShaggyDoc - по его мнению "теткам" так проще - выпишут на бумажку, а через год - глядишь и запомнят). По идее они должны не тупо заменять X на Y,  а смотреть в "контекст", что вызываеться, что использовалось до этого и пр. и на основе анализа выводить юзеру варианты для выбора, а никак не тупо подменять - вот еслиб юзер увидел предложенную команду, выбрал ее, а загрузилась не она - это конечно баг - а пока ИХМО только твое неверное использование сей "фичи" (что раньше работало так - это не значит, что написанно она для этого).

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Цитировать
Ну есть такое понятие как системные требования - и я не могу сказать, что для автокада 2015 они слабые.
Машинка может быть и не слабой, но загруженной иными процессами (AutoCAD не единственное приложение, работающее на компьютере).

Цитировать
Подсказчики типа IntelliSennse и не подразумевают что на конкретную команду он даст конкретный ответ, если надо так - то напишите в том-же acad.pgp сокращения и хоть трехзначную цифру каждой команде назначайте (кстати такой способ названия "своих" команд рекомендовал С.Зуев - он же ShaggyDoc - по его мнению "теткам" так проще - выпишут на бумажку, а через год - глядишь и запомнят).
Вообще-то именно эти сокращения я и пытаюсь вводить в консоль AutoCAD 2015 (см. скрин), если ты до сих пор не заметил:
Цитата: acad.pgp
...
S,         *STRETCH
...
ST,        *STYLE
...
Однако IntelliSennse (или что-то другое???) время от времени подменяет их вызов вызовом мусора (в данном случае s вместо st).

Цитировать
По идее они должны не тупо заменять X на Y,  а смотреть в "контекст", что вызываеться, что использовалось до этого и пр. и на основе анализа выводить юзеру варианты для выбора, а никак не тупо подменять
Я тоже так считаю, однако практика показывает иное поведение.

Цитировать
это конечно баг - а пока ИХМО только твое неверное использование сей "фичи" (что раньше работало так - это не значит, что написанно она для этого).
"Моё неверное использование"? Ой ли? Что не так я использую в этой последовательности действий (ранее мною указанной)? :
Цитировать
Например на скрине, показанном ниже, я набрал st и нажал Enter. Как видите, автокад увидел, что я набрал st, но на исполнение запустил s. Поскольку это не та команда, которая мною запрашивалась, я жму Esc.

 Меня не интересуют оправдания текущего поведения AutoCAD. Для меня, как для потенциального пользователя, важен конечный результат, т.е. чтобы AutoCAD работал привычным для меня образом. Обычно я набираю команды с клавиатуры, пользуясь псевдонимами, определёнными в pgp файле. В данном случае этот механизм работает через раз. Причины мне не интересны - на эту тему голова пусть болит у Autodesk. Если Дима_ всё устраивает, то я рад за него, а то, что не устраивает лично меня - я указал. Возьмут обозначенную мною информацию в обработку, или не возьмут - это уж сами пусть решают.
« Последнее редактирование: 08-05-2014, 12:46:27 от Андрей Бушман »

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

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