На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Компоненты Qt Designer

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: Пред. 1 2 3 След.
RSS
Компоненты Qt Designer
 
Добрый день!
После обновления ГИС дизайнер на тестовую версию 12.5.2.198 перестала работать функция кнопки добавления данных в окне "Список данных электронной карты".
При попытке добавить, с помощью этой кнопки, любые данные происходит зависание....
 
Цитата
Николай написал:
Добрый день!
После обновления ГИС дизайнер на тестовую версию 12.5.2.198 перестала работать функция кнопки добавления данных в окне "Список данных электронной карты".
При попытке добавить, с помощью этой кнопки, любые данные происходит зависание....
Здравствуйте, Николай!
Попробовали воспроизвести данную проблему на Астра линукс 1.5 и 1.6. Данная кнопка в обоих системах отработала корректно. Для более подробного анализа данного поведения нам необходима следующая информация:
  • Версия используемой операционной системы.
  • Воспроизводится ли данная проблема на тестовых данных и примерах(myfirst) из состава инсталляции?
  • Какая последовательность действий требуется для воспроизведения данного поведения?
Изменено: Константин Ганюшин - 26.03.2019 14:43:42
 
Мы проверили проект myfirst из примеров, действительно кнопка добавить отрабатывает корректно.

В нашем проекте открывается sitx и к нему подключается два виртуальных sit. На виртуальных ситах должны располагаться временные объекты (в количестве нескольких сотен тысяч).

После инициализации карты и ситов, создаётся структура данных, содержащая те самые сотни тысяч объектов которые привязаны к карте методом SetMapView но не инициализированы методом CreateNullObj. (CreateNullObj будет вызван позднее, при определённых условиях).
Оказалось что после нажатие кнопки "добавить"  в окне "Список данных электронной карты" происходит не полное зависание системы, а просто "длительная инициализация \ подготовка" перед отрисовкой диалога выбора добавляемых данных, т.е. чем меньше объектов, тем быстрее всплывает диалог после нажатия кнопки. (Вне зависимости от того были ли инициализированы объекты в структур данных методом CreateNullObj или нет)

При использовании любой доступной нам версии библиотеки Gis Disigner в нашем проекте оказалось, что диалог открытия данных отрабатывает ОООооооочень медленно.
Как нам поправить это, что бы окно открывалось сразу после нажатия на кнопку, а все дальнейшие действия выполнялись уже после выбора открываемых данных?
 
Если возможно, пожалуйста, отправьте на почту panorama@gisinfo.ru набор данных для тестирования, на котором можно воспроизвести данную проблему.
 
В данном случаи мы получаем набор номенклатур из БД и создаём объекты на основе полученных данных в рантайме, поэтому прислать данную информацию невозможно.

Можем создать видео с воспроизведением данной проблемы.
 
Мы собрали маленький синтетический тест, который должен был воспроизводить данную ошибку, и столкнулись с ещё одной особенностью поведения.

Тест создаёт указанное количество объектов (в нашем примере чуть больше 100 тысяч), и помещает их в простой стандартный контейнер. После инициализации планировалось открытие диалога и замер скорости загрузки этого диалога.
Столкнулись с тем, что при создании тех самых 100 тысяч объектов, съедается доступная системе оперативная память и своп...

100 тысяч объектов для ГИС системы не очень большой объём, насколько корректно данное поведение?

Высылаем тестовый проект и скриншот состояния системы после в процессе работы.
TEST.png (199.06 КБ)
 
Цитата
Сергей Алексеев написал:
Высылаем тестовый проект и скриншот состояния системы после в процессе работы
Уважаемые господа,

Есть ли какое-то решение данной проблемы, т.к. нас очень поджимают сроки, а объяснения для начальства, что в её решение нам помогают специалисты КБ Панорама ни кого не устраивает.
 
Цитата
Сергей Алексеев написал:
На виртуальных ситах должны располагаться временные объекты (в количестве нескольких сотен тысяч).После инициализации карты и ситов, создаётся структура данных, содержащая те самые сотни тысяч объектов которые привязаны к карте методом SetMapView но не инициализированы методом CreateNullObj. (CreateNullObj будет вызван позднее, при определённых условиях).Оказалось что после нажатие кнопки "добавить"  в окне "Список данных электронной карты" происходит не полное зависание системы, а просто "длительная инициализация \ подготовка" перед отрисовкой диалога выбора добавляемых данных, т.е. чем меньше объектов, тем быстрее всплывает диалог после нажатия кнопки. (Вне зависимости от того были ли инициализированы объекты в структур данных методом CreateNullObj или нет)

Цитата
Сергей Алексеев написал:
Тест создаёт указанное количество объектов (в нашем примере чуть больше 100 тысяч), и помещает их в простой стандартный контейнер. После инициализации планировалось открытие диалога и замер скорости загрузки этого диалога.Столкнулись с тем, что при создании тех самых 100 тысяч объектов, съедается доступная системе оперативная память и своп...100 тысяч объектов для ГИС системы не очень большой объём, насколько корректно данное поведение?

100 тысяч объектов - это совсем небольшой объём.

Можно увидеть код того, как у Вас реализовано "инициализация карты и ситов, создаётся структура данных, содержащая те самые сотни тысяч объектов"?
 
Цитата
Сергей Алексеев написал:
Мы собрали маленький синтетический тест, который должен был воспроизводить данную ошибку, и столкнулись с ещё одной особенностью поведения.

Тест создаёт указанное количество объектов (в нашем примере чуть больше 100 тысяч), и помещает их в простой стандартный контейнер. После инициализации планировалось открытие диалога и замер скорости загрузки этого диалога.
Столкнулись с тем, что при создании тех самых 100 тысяч объектов, съедается доступная системе оперативная память и своп...

100 тысяч объектов для ГИС системы не очень большой объём, насколько корректно данное поведение?

Высылаем тестовый проект и скриншот состояния системы после в процессе работы.
Здравствуйте!

В примере есть неточность в функции on_btnCreateObjects_clicked:

--    for (std::size_t Index = 0; ui->ObjectsHorizontalSlider->value(); ++Index)
++  for (std::size_t Index = 0; Index < ui->ObjectsHorizontalSlider->value(); ++Index)
 
Цитата
Константин Ганюшин написал:
В примере есть неточность в функции on_btnCreateObjects_clicked:--    for (std::size_t Index = 0; ui->ObjectsHorizontalSlider->value(); ++Index)++  for (std::size_t Index = 0; Index  ObjectsHorizontalSlider->value(); ++Index)
Каюсь, есть такое. Просмотрел.

Но даже исправив эту ошибку, создавая ~ 250000 объектов, отъедается вся доступная память и почти весь своп.
При происходит загрузка процессора почти полностью.

Открытие диалога так же проверить не получается. Приложение повисает.
250 000 пустых объектов действительно должны занимать более 2 ГБ памяти?
IMG2.png (158.43 КБ)
Изменено: Сергей Алексеев - 02.04.2019 12:25:15
Страницы: Пред. 1 2 3 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности