2011-08-31 1 views
0

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

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.

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

Кроме того, возможно, есть некоторые более эффективный способ, чем при использовании конфигурации и записи.

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

ответ

1

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

Окна: wxConfig пишет в HKEY_CURRENT_USER \ Software \ мягкой.

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

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

+0

Спасибо, это определенно не то, что нужно использовать для хранения настроек ... – Damien

2

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

+0

Это действительно материал конфигурации. mainset_sql_login-> возвращает только строковое значение без операции. – Damien

+0

На самом деле найти нашу проблему, был ли цикл закрытия функции по какой-либо причине (...?), а процесс сохранения был выполнен как 10 000 раз. , – Damien