Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

171
Visualizações
¿Estoy llegando a los límites artificiales de QSqlDatabase?

Tengo una función que ha estado funcionando bien durante mucho tiempo, que comienza

 QSqlDatabase DBUtil :: basic_open (const QString & path) { static int connection_num = 0; static const QString CONNECTION_NAME = "Connection%1"; QSqlDatabase db = QSqlDatabase :: addDatabase ( "QSQLITE", CONNECTION_NAME .arg (connection_num++)); db .setDatabaseName (path); if (false == db .open ()) { // error

Estoy usando esto para abrir y leer desde muchas pequeñas bases de datos SQLite, cada una ~200k, y al abrir la 1013 falla con

 out of memory Error opening database

La carga de memoria total de la aplicación es ~200M, con gigabytes libres en la máquina.

Parece que estoy llegando a un límite que no sea la pura memoria. Cada objeto QSqlDatabase sale del alcance del bucle antes de que se cree el siguiente, estas bases de datos no existen al mismo tiempo y no puedo ver los límites de conexión mencionados en la documentación. Así que estoy confundido.

lsof informa sobre 200 identificadores de archivos abiertos antes de que comience este ciclo y alrededor de 1200 cuando termina, por lo que parece que Qt mantiene los identificadores abiertos después de ~QSqlDatabase , pero aún así, si ese es el límite, parece un poco bajo.

¿Tienes idea de lo que está pasando? Esto está en Ubuntu actualizado.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

En primer lugar, QSqlDatabase es un singleton, por lo que el alcance no importa.

Intente cerrar la conexión antes de abrir una nueva.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda