Тестирование производительности разных версий ACAD
На основе статьи от BricSys. Подумал, что будет небезынтересно сравнить производительность разных версий AutoCAD.
Чтобы не "порушить" боевое железо, использую виртуальную машину.
Характеристики виртуального PC
OC |
Microsoft Windows 7 Pro x64 |
RAM |
4 Gb |
Доступ к интернет-ресурсам закрыт на физическом компе. Файл виртуальной машины расположен на локальном диске физического компьютера (SSD).
Проверяем работу AutoCAD 2014, 2015, 2016 версий. Настройки профиля - по умолчанию (создается новый профиль с именем "TestCAD"; в ключах запуска используется ключ /nologo). Аппаратное ускорение графики определяется "автоматом". AutoCAD'ы запускаются один за другим, с предварительной очисткой каталога %Temp%. Код запускается вручную, никаких циклов.
Подготовка к тестированию
Набор для проведения теста производительности CAD-систем при выполнении операций создания и редактирования 2D объектов включает:
1) Файл timer.lsp, содержащий набор тестовых функций построения и редактирования 2D объектов.
2) Файл сценария flattimer.scr (необходим для запуска команды flatten в AutoCAD)
3) Тестовые чертежи
– test_S.dwg 1,5 Мб (39220 объектов);
– test_M.dwg 11,1 Мб (85965 объектов);
– test_L.dwg 20,5 Мб (343726 объектов);
– test_X.dwg 67,9 Мб (267356 объектов);
– test_R.dwg – файл с растровым изображением paris_12000.jpg (70 Мб)
4) Пакет LispBenchMark для тестирования LISP-функций и приложений (разработчик – Torsten Moses, Torsten_Moses@LayerManager.com).
Перед началом тестирования скопируйте все файлы из п.1-3 и папку LispBenchMark в один каталог, например, TestPack.
В настройках CAD системы укажите путь к этому каталогу и путь к папке LispBenchMark, находящейся в этом каталоге.
================================================================================================
Порядок выполнения тестов с помощью набора функций timer.lsp:
1. Выполните загрузку файла timer.lsp в тестируемую CAD-систему.
2. Для выполнения тестов введите в командной строке наименование соответствующей функции, указав, при необходимости, значения ее параметров. Например:
(full) – выполнение набора тестовых операций.
(opentimer 1) – тест скорости открытия чертежа с идентификатором 1 (открывает файл test_S.dwg)
(regentimer 5) – обновление чертежа, 5 повторов с вычислением среднего значения
и другие.
Подробное описание функций и параметров см. файл timer.lsp
Результаты выполнения тестов отображаются в окне История команд.
================================================================================================
Порядок выполнения тестов LispBenchMark:
1. Выполните загрузку файла Bench.lsp из папки LispBenchMark.
2. Для выполнения тестов введите в командной строке наименование соответствующей функции. Например:
BENCH – полный тест
BENCHS – тест стандартных функций LISP
BENCHVL – тест VL-функций
BENCHVLA – тест VLA-функций
BENCHVLAX – тест VLAX-функций
BENCHUSER – тест LISP приложения
и другие.
Подробное описание функций пакета LispBenchMark см. файл Bench.lsp
Результаты выполнения тестов отображаются в окне История команд и сохраняются в текстовых файлах в папке BenchLogs каталога LispBenchMark.
Пакеты распакованы в каталог
1 2
| C:\Autodesk\TestPack
C:\Autodesk\TestPack\LispBenchMarks |
В каждый AutoCAD в пути поиска добавляется эти каталоги. Все функции запускаются из консоли VLIDE. Виртуальная машина не деактивируется.
Прежде чем продолжать, хочу сказать пару ласковых авторам тестов...
Во-первых, раз уж тестируется AutoCAD, кто мешает сформировать файлы так, чтобы они при открытии не орали ни о том, что "Файл сделан в приложении, не лицензированном Autodesk"?
Во-вторых, предоставляя файлы, не помешает их чистить от мусора, которого там весьма приличное количество - вплоть до объектов нулевой длины!
В-третьих, про понятие "недоступных шрифтов", похоже, авторы не подозревают. Убил бы!
В-четвертых, и в самых главных: разрабатывая код, не помешает его тестировать потщательнее. Мне было лень воевать и полностью переписывать коды, поэтому я сделал следующее:
- Добавил обработку всех системных переменных
- Вызов каждой функции из (full) обрамил в свой vla-startundomark и vla-endundomark. Отсутствие подобных кусочков может привести (и нередко приводит) к дикому объему файлов отмены
- Опять же, из-за собственной паранойи я добавил обработку ошибок
- И, наконец, я убрал функции проверки скорости удаления и восстановления примитивов: срабатывали они не всегда корректно. Разбираться с причинами не было никакого желания. Код не оптимизировался никаким манером - хотя и следовало бы
Тестирование проходило только на функции (full), без вызовов Bench* - и без этого хватило "за глаза". Код запускаются в каждом файле dwg 3 раза, в результат попадает усредненное значение. Все это "богатство" было сведено в единую таблицу и посчитаны самые медленные версии AutoCAD на каждой операции на каждом файле. Отклонение в пределах плюс-минус 5% от среднего времени я посчитал погрешшностью измерения. Результаты свел в следующую таблицу:
Таблица с результатами
Выполняемая операция
|
test_S.dwg
(39220 объектов)
|
test_M.dwg
(85965 объектов)
|
test_L.dwg
(343726 объектов)
|
test_X.dwg (267356 объектов)
|
test_R.dwg файл с растровым изображением paris_12000.jpg (70 Мб)
|
opentimer
|
2014
|
2015
|
2015
|
2014
|
2014
|
pan
|
2015
|
2014
|
2014
|
2014
|
2014
|
select all
|
2014
|
2014
|
2016
|
2016
|
2014
|
2014: 00:00,792
2015: 00:00,950
2016: 00:00,963
Самый быстрый: 2014
Отклонение 2016 от самого быстрого (принят за 100%): 21,59%
|
2014: 00:00,525
2015: 00:00,545
2016: 00:00,619
Самый быстрый: 2014
Отклонение 2016 от самого быстрого (принят за 100%): 17,90%
|
move
|
2014
|
2016
|
2016
|
2014
|
2014
|
2014: 00:09,236
2015: 00:08,398
2016: 00:09,330
Самый быстрый: 2015
Отклонение 2016 от самого быстрого (принят за 100%): 11,10%
|
2014: 00:36,870
2015: 00:33,063
2016: 00:36,882
Самый быстрый: 2015
Отклонение 2016 от самого быстрого (принят за 100%): 11,55%
|
regen
|
2014
|
2016
|
2016
|
2014
|
2014
|
2014: 00:01,708
2015: 00:02,200
2016: 00:02,369
Самый быстрый: 2014
Отклонение 2016 от самого быстрого (принят за 100%): 38,70%
|
2014: 00:06,748
2015: 00:08,072
2016: 00:09,177
Самый быстрый: 2014
Отклонение 2016 от самого быстрого (принят за 100%): 36,00%
|
zoom
|
2014
|
2014
|
2014
|
2015
|
2014
|
scale
|
2015
|
2016
|
2016
|
2014
|
2014
|
2014: 00:08,679
2015: 00:08,513
2016: 00:09,332
Самый быстрый: 2015
Отклонение 2016 от самого быстрого (принят за 100%): 9,62%
|
2014: 00:35,954
2015: 00:33,660
2016: 00:36,279
Самый быстрый: 2015
Отклонение 2016 от самого быстрого (принят за 100%): 7,78%
|
audit
|
2014
|
2014
|
2014
|
2014
|
2014
|
rotate
|
2014
|
2014
|
2014
|
2016
|
2014
|
2014: 00:32,847
2015: 00:31,638
2016: 00:36,345
Самый быстрый: 2015
Отклонение 2016 от самого быстрого (принят за 100%): 14,88%
|
mirror
|
2015
|
2016
|
2014
|
2014
|
2016
|
2014: 00:08,368
2015: 00:08,452
2016: 00:09,106
Самый быстрый: 2014
Отклонение 2016 от самого быстрого (принят за 100%): 8,82%
|
2014: 00:00,002
2015: 00:00,002
2016: 00:00,003
Самый быстрый: 2014
Отклонение 2016 от самого быстрого (принят за 100%): 50,00%
|
full
|
2014
|
2016
|
2014
|
2014
|
2014
|
2014: 02:12,422
2015: 02:02,368
2016: 02:14,316
Самый быстрый: 2015
Отклонение 2016 от самого быстрого (принят за 100%): 9,76%
|
На случай, если смотреть на таблицу скучно, ниже приведены диаграммы на каждую функцию (картинки кликабельны).
Файл с результатами тестов лежит здесь: CADSpeedTestResults (формат архива - zip; формат файла -xlsx).
Подводя некоторые итоги, можно сказать следующее: 2016 в реальной жизни, скорее всего, будет интереснее 2014 и 2015: достаточно вспомнить о том, что аппаратное ускорение для 2014 и 2015 на виртуальном компьютере включалось, а для 2016 - нет; а также некоторую искусственность тестов (ну, тут уже никуда не денешься).
Критичными для 2016 могут выглядеть задачи выбора объектов на тяжелых файлах; регенерации при наличии слабой или несертифицированной видеокарты; зеркалирования растров (если они вставлены как OLE-объекты). Возможно, в дальнейшем эти вопросы будут решены - не знаю.
P.S. Если бы мне было не лень, я бы попробовал переписать тесты. Но мне лень
---
Добавлено:
Здесь лежит архив с тестовыми файлами (216 Мб, учтите!). Содержимое:
readme.txt - штатное описание теста
test_?.dwg - файлы тестов
*ACAD.dwg - те же файлы, но прошедшие очистку в AutoCAD (в том числе и _.wblock). Настройки текстовых стилей и вычищение типов линий не производилось
timer.lsp - штатный тестовый lisp
timer_modified.lsp - модифицированный lisp, в котором сделаны некоторые дополнения (в том числе и лишние)
Похожее
Лёша, интересно было бы почитать о тестовых платформах (Unit Testing Framework), которые можно использовать для тестирования LISP приложений в AutoCAD. Есть какая-то информация на эту тему?
У меня по крайней мере нет. Если честно, у меня lisp-тестирование (с точки зрения нормального разработчика) поставлено из рук вон плохо: все тестирование выполняется вручную (программистом при написании кода + специально выделенным человеком).
Может быть, это связано с некоторой "обособленностью" лиспа от нормальных языков программирования, может быть - с моей ленью. Не знаю.
Здравствуйте!
А есть ли какая-нибудь информация по ускорению работы в Автокад с 3д на профессиональных видеокартах Nvidia Quadro и FirePro? Что планируется в будущем, или наоборот от чего уходим..?
Даст ли существенный прирост покупка профессиональной видеокарты по сравнению с геймерской при равной цене?
Будет ли толк от профессиональной видеокарты за 5-10т.р, по сравнению с геймерской за 15-20?
Я бы прежде всего проверял видеокарту на соответствие списку официально рекомендованных (на сайте Autodesk такой список есть).
А так - лично у меня подобной информации нет.
У меня была когда-то Quadro от NVidia (не топовая, но и не самая дешёвая). Из того, что бросилось в глаза: применительно к играм она была мягко говоря, на дохлую троечку. Аналогичная по цене игровая (так же от NVidia) ни в какое сравнение не шла. Применительно к AutoCAD я разницы не заметил между Quadro и игровой. Я брал Quadro для того, чтобы поковыряться с технологией CUDA. Но эту технологию сейчас уже поддерживают почти все (или просто все) современные видеокарты от NVIDIA, в т.ч. и игровые.
В наше время во многих серьёзных магазинах видеокарты можно брать на время (с предоплатой) для того, чтобы попробовать их. Я так помнится выбирал между Radeon и NVidia когда-то. Правда я не знаю магазинов, где аналогично на "потестить" можно взять современную Quadro.
Quadro стоит сумасшедших денег и покупать её основываясь лишь на рекламе сайта NVidia - это дорогой кот в мешке.
>Я бы прежде всего проверял видеокарту на соответствие списку официально рекомендованных (на сайте Autodesk такой список есть).
Я бы не стал 100% полагаться на это. Автодеск нередко на заборе пишет надписи, за содержимое которых не отвечает (многократно проверено на практике).
Добрый день!
Подскажите пожалуйста, работает ли тест (лисп) в AutoCAD 2013?
Также.
В Лисп timer
;;Для добавления/удаления операции добавить/удалить ; перед соответствующей функцией
(defun full (/ start_time end_time func_time full_time)
Куда нужно добавить ?
Заранее вам благодарен за ответ
Доброго. По идее должен (но я не проверял). Касаемо "добавления" - а какой результат надо получить?
Результат - повторить за вами тест.
Так попробуйте запустить timer_modified.lsp - там код уже подготовлен к использованию.
Доброе утро!
Запустил timer_modified.lsp выдает ошибку: Обнаружены ошибки программы. Рекомендуется сохранить чертеж и перезапустить программу."
Какую именно функцию / команду запускали? Я только что специально повторно скачал архив - подобное сообщение не получил.
AutoCAD2016. Открывались test_*_ACAD.dwg-файлы из архива. Запуск команды totp, функции full (без редактирования).
Обычно подобное сообщение выводится только при попытке восстановления какого-либо поврежденного файла.
Открываю в AutoCAD 2013.
Открываю файл.
Загрузил lisp.
Затем запускаю команду totp/
И говорит Обнаружены ошибки программы. Рекомендуется сохранить чертеж и перезапустить программу.”
Подскажите пожалуйста функции full (без редактирования) это что такое?
Может дело в AutoCAD 2013.
Значит, в файле присутствуют ошибки. После выполнения очистки - сохранить файл. В 90% случаев перезапуск AutoCAD не требуется, но я бы перезапустил AutoCAD и снова открыл этот файл dwg.
>> full (без редактирования)
Это значит, что в код не вносились никакие изменения. Прямо как есть, так и запускается:
Команда: _explodeallproxy Неизвестная команда "EXPLODEALLPROXY". Для вызова справки нажмите F1.
Команда: _removeallproxy Неизвестная команда "REMOVEALLPROXY". Для вызова справки нажмите F1.
Команда:
Проверка заголовка
Проверка таблиц
Проверка объектов, проход 1
Проход 1: проверено объектов: 2556700
Проверка объектов, проход 2
Проход 2: проверено объектов: 2556700
Проверка блоков
Проверено блоков: 94
Проверка AcDsRecords
Всего найдено ошибок: 0, исправлено: 0
Стерто 0 объектов
В текущем наборе объектов в пр-ве листа: 7536741; в пр-ве модели: 7077993
Команда: nil
Команды _.explodeallproxy и _.removeallproxy - это из комплекса RemoveAllProxy от А.Ривилиса
P.S. По поводу очистки файла от мусора есть масса информации: Как уменьшить объем файла dwg.