2011-08-31 3 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 초 동안 약 10 초 (프로그램 고정) 소요됩니다.

필자는 내 로컬 디스크에 쓰기가 가능하다고 생각합니다. 내가 지옥이 어디에 저장되어 있는지 알아낼 수 없었기 때문에 심지어 config-> SetPath를 사용해 보았습니다.

또한 내 컴퓨터에있는 파일에 대한 액세스는

이 또한 어쩌면 설정 쓰기를 사용하는 것보다 좀 더 효율적인 방법이 ... 그 느린 것 같다하지 않습니다.

누구나 아이디어를 얻은 경우 감사합니다.

윈도우 : wxConfig는 \ 부드러운 HKEY_CURRENT_USER \ 소프트웨어에 기록 "소프트"주어진 이름에 대한

답변

1

.

리눅스 : wxConfig는 숨겨진 .soft 파일을 홈 디렉토리에 생성합니다.

두 OS에서 wxConfig를 사용하면 성능에 문제가 없었습니다. 이 정보가 저장된 위치를 알고 더 조사하십시오.

+0

감사합니다. 설정을 저장하는 데 사용할 좋은 물건이 아닙니다. ... – Damien

2

좋은 디버그 전략이 있어야합니다. 외부 영향을 최소화하고 최소한의 예를 만드십시오. 그런 다음 정확히 프로그램이 멈추는 곳을 찾아보십시오. 정말 설정 물건입니까? 아니면 mainset_sql_ * 쿼리입니까?

+0

정말 설정 항목입니다. main39_sql_login->는 연산없이 문자열 값을 반환 만합니다. – Damien

+0

실제로 문제가 무엇인지 확인하고, 어떤 이유로 든 닫는 함수에 루프가 있었으며 (...?) 저장 프로세스가 10,000 번처럼 완료되었습니다. . – Damien

관련 문제