Hello to everybody,

in my corporation we are using Qt to create an Web Application that emulates a Native Application, that is we use HTLM + JS in a QWebKit but there is no web server, you launch the application on the terminal and you have the illusion to use a Native Application.

This simplified a lot the coding as you have used HTLM + CSS to do the GUI and Javascript + Qt for the engine, but the Application if stressed a lot is killed by the infamous Linux Out of Memory Killer !

I add this details: the Application's Main Window is an instance of QWebKit in which the page header and the footer are written, the body is the 80% of the screen and is, typically, empty.
In this empty part sometimes a new QWebKit runs with the forms in which the operator write his data.
We have menu that are natives QMenu and messagebox, too that are extended by ourselves from QMessageBox.

A part for the QMenu and QMessageBox all it is created on application star sometime hidden, we simply load new urls in them and then show the resource.

In any cases we lose memory but where?

  1. Our classes are in C++ but we have avoided the "new" and "malloc" as if they were Satan, or when we have used them the object had an explicit parent that would have deallocated in the future (Qt does this by design, right?).
  2. Java script does some "new" but it is a bad clone of Java, right? So it has the Garbage Collector... the Qt 's javascript interpreter is bugged? It leaks memory?
  3. The QMessagebox here we are pretty sure to have found a bug in the QMovie object that we have used to show a wait icon (the classical rotating GIF), when the QMessagebox is destroyed (and it is destroyed when it is closed, right?) the QMovie it is not stopped! A timer continued to run... forever If we call the delete of the QMovie in the QMessagebox destructor the application crashed for a double free
  4. A Memory leak on the Qt Framework itself


The Qt version is: 4.6.2-2 and runs on Linux Cent OS 5.4 running on kernel 2.6.32.1 that is not the official distribution kernel neither the vanilla one (we have changed it adding statically some drivers).

Thanks for your help we have no ideas anymore...