2011-08-31 12 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; 

私はそれを私の閉鎖機能で呼びます。

実際には非常に遅いですが、約20秒間(プログラムがフリーズして)約20パララムを書き込むのに約10秒かかります。

私は地元のディスクに書いていると思います。なぜなら、地獄が保存されている場所を知ることができず、config-> SetPathを使ってみることさえあります。

また、自分のコンピュータ上のファイルへのアクセスが遅い...

はまた多分コンフィグライトを使用するよりも、いくつかのより効率的な方法があることであるように思われません。

誰かがアイデアを得たら、感謝します。指定された名前のために

答えて

1

"ソフト":

のWindows:wxConfigソフト\ HKEY_CURRENT_USER \ソフトウェアに書き込みます。

Linux:wxConfigは、隠された.softファイルをホームディレクトリに作成します。

両方のOSでwxConfigを使用しても、パフォーマンスに問題はありませんでした。この情報が保存されている場所を知って、さらに調査してみてください。

+0

ありがとう、確かに設定を保存するために使用する良いものを意味しない... – Damien

2

良いデバッグ戦略が必要です。外部の影響を最小限に抑え、最小の例を作りましょう。次に、正確にプログラムがハングする場所を見つけようとします。それは本当に設定のものですか?それともmainset_sql_ *クエリですか?

+0

それは本当に設定のものです。 mainset_sql_login->は操作なしの文字列値を返すだけです – Damien

+0

実際に何が問題なのか、何らかの理由で(...?)クローズ関数にループがあり、保存プロセスは10,000回行なわれました。 。 – Damien

関連する問題