Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

168
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda