Очевидная ошибка CadImport .NET

Discuss and ask questions about CAD .NET library.

Moderators: SDS, support, admin

Post Reply
nikita
Posts: 1
Joined: 31 Oct 2006, 11:06

Очевидная ошибка CadImport .NET

Post by nikita » 31 Oct 2006, 11:15

Видимо эта ошибка касается всех библиотек CadImport для всех платформ и сред программирования.
Ошибка следующая - зачем вы загружаете весь dwg (dxf) и любой другой файл в память полностью?? Это же очевидный промах! DWG файл размером 30Mb (в !!текстовом!! DXF он занимает 103Mb) в принципе не открывается с гигом памяти, двухядерным процессором и быстрым винтом. Приложение начинает занимать больше гигабайта (из-за вашей библиотеки), после чего начинается своппинг, и надежды на открытие файла не остается совсем!!!
Это очень глупо с вашей стороны писать такой код! Ведь реальные данные никогда не бывают очень маленькими!

PoltP
Posts: 8
Joined: 20 Jul 2006, 12:47
Location: Russia
Contact:

Post by PoltP » 31 Oct 2006, 18:27

Подобные замечания мы получаем впервые, поэтому хотелось бы как можно бОлее подробно ответить на Ваши вопросы, выделив несколько основных моментов.

1. Действительно, в CADImportVCL и ABViewer недвоичные САПР-файлы (DXF, SVG) хранятся в памяти для возможности отображения его структуры и это НЕ ошибка. Если Вы не используете структуру, то при использовании CADImportVCL Вы можете сами очищать память в случае необходимости. CADImportDLL, CADImageDLL очищают память, а файл хранится в памяти ТОЛЬКО НА ЭТАПЕ ЧТЕНИЯ.
В ближайшее время (возможно, уже в следующей версии библиотек) мы переделаем логику загрузки структуры, чтобы не было необходимости постоянно хранить файл в памяти.

2. Если Вы имели ввиду хранение файла в оперативной памяти как таковое на этапе загрузки, то здесь есть свои плюсы (бОлее быстрое обращение к памяти, по сравнению с жестким диском, а в случае чтения по сети просто необходимо иметь локальную копию файла) и минусы (оперативная память уменьшается на размер файла). Кроме того, некоторые версии DWG-формата (особенно старшие) иначе прочитать просто невозможно, так как используются алгоритмы упаковки и шифрования.
Вообще любой CAD-файл имеет сложную структуру и грузить его последовательно частями крайне неудобно.

3. Также, указанным Вами образом память может перегружаться, при наличии большого количества примитивов (например, POLYLINE с большим количеством вертексов). Мы постоянно работаем над оптимизацией по скорости и по количеству требуемой памяти и добились в этом направлении хороших результатов.

4. Мы достаточно давно работаем в сфере разработки средств для просмотра САПР-чертежей и тестируем наши библиотеки на большом количестве DWG/DXF/HPGL/SVG/CGM файлов разных размеров, в том числе очень крупных по размерам. В случае возникновения у Вас трудностей с конкретными файлами, по-возможности, пришлите их нам и мы постараемся решить возникшие проблемы.

- - -
Yours faithfully,
Pavel Poltavets,
senior developer Soft Gold Ltd.

Post Reply