Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

167
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!