wxWidgets wxConfBase Писать очень медленно - PullRequest
0 голосов
/ 31 августа 2011

Я использую wxConfBase для сохранения данных моего текстового поля.(windows)

config = new wxConfig(wxT("soft"));
    config->Write(wxT("COM"),temp_port->GetValue());
    config->Write(wxT("SQL_HOST"),mainset_sql_host->GetValue());
    config->Write(wxT("SQL_DB"),mainset_sql_db->GetValue());
    config->Write(wxT("SQL_LOGIN"),mainset_sql_login->GetValue());
    config->Write(wxT("SQL_PASS"),mainset_sql_pass->GetValue());
  {.......}
delete config;

Я вызываю это в своей функции закрытия.

Дело в том, что это очень медленно, занимает около 10 секунд (программа зависла), чтобы написать около 20 параметров.

Я полагаю, что это запись на моем локальном диске, так как я не смог выяснить, где, черт возьми, что сохранилось, даже пытаясь использовать config-> SetPath.

Также доступ к файламна моем компьютере, кажется, не так медленно ...

Также, возможно, есть более эффективный способ, чем использование config-write.

Если у кого-нибудь есть идея, спасибо.

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

У вас должна быть хорошая стратегия отладки.Постарайтесь минимизировать внешние воздействия и приведите минимальный пример.Затем попытайтесь выяснить, где именно висит программа.Это действительно конфиг?Или это те mainset_sql_ * запросы?

1 голос
/ 31 августа 2011

Для данного имени "soft":

Windows: wxConfig записывает в HKEY_CURRENT_USER \ Software \ soft.

Linux: wxConfig создает скрытый файл .soft в домашнем каталоге.

При использовании wxConfig в обеих ОС у меня не было проблем с производительностью.Попробуйте узнать больше, зная, где хранится эта информация.

...