ÐžÑ‡ÐµÐ²Ð¸Ð´Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° CadImport .NET
Moderators: SDS, support, admin
ÐžÑ‡ÐµÐ²Ð¸Ð´Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° CadImport .NET
Видимо Ñта ошибка каÑаетÑÑ Ð²Ñех библиотек CadImport Ð´Ð»Ñ Ð²Ñех платформ и Ñред программированиÑ.
Ошибка ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ - зачем вы загружаете веÑÑŒ dwg (dxf) и любой другой файл в памÑÑ‚ÑŒ полноÑтью?? Ðто же очевидный промах! DWG файл размером 30Mb (в !!текÑтовом!! DXF он занимает 103Mb) в принципе не открываетÑÑ Ñ Ð³Ð¸Ð³Ð¾Ð¼ памÑти, двухÑдерным процеÑÑором и быÑтрым винтом. Приложение начинает занимать больше гигабайта (из-за вашей библиотеки), поÑле чего начинаетÑÑ Ñвоппинг, и надежды на открытие файла не оÑтаетÑÑ ÑовÑем!!!
Ðто очень глупо Ñ Ð²Ð°ÑˆÐµÐ¹ Ñтороны пиÑать такой код! Ведь реальные данные никогда не бывают очень маленькими!
Ошибка ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ - зачем вы загружаете веÑÑŒ dwg (dxf) и любой другой файл в памÑÑ‚ÑŒ полноÑтью?? Ðто же очевидный промах! DWG файл размером 30Mb (в !!текÑтовом!! DXF он занимает 103Mb) в принципе не открываетÑÑ Ñ Ð³Ð¸Ð³Ð¾Ð¼ памÑти, двухÑдерным процеÑÑором и быÑтрым винтом. Приложение начинает занимать больше гигабайта (из-за вашей библиотеки), поÑле чего начинаетÑÑ Ñвоппинг, и надежды на открытие файла не оÑтаетÑÑ ÑовÑем!!!
Ðто очень глупо Ñ Ð²Ð°ÑˆÐµÐ¹ Ñтороны пиÑать такой код! Ведь реальные данные никогда не бывают очень маленькими!
Подобные Ð·Ð°Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¼Ñ‹ получаем впервые, поÑтому хотелоÑÑŒ бы как можно бОлее подробно ответить на Ваши вопроÑÑ‹, выделив неÑколько оÑновных моментов.
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.
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.