[Kst] : Huge performance problem under Windows

Peter Kümmel syntheticpp at gmx.net
Tue Nov 17 11:44:49 CET 2009

Brisset, Nicolas wrote:
>> Glad to see your are not worried about my commits.
> Well, you know, I'm not the big boss and besides I'm a rather poor coder :-) Barth, the original author, is still mostly the one who decides in the end, and still a very active contributor. Wait until he wakes up (most kst developers are in North America) and you'll know what *he* thinks :-) But I've always found the kst developers very friendly and responsive, and from what I can judge kst is very well written. There have more or less always been a couple of professional (and good!) coders working on the project in the last years, so I guess that shows. I think the worst that can happen is that he asks for a couple of cosmetic changes... We'll see. 
>> mingwm10.dll uses the msvc runtime library from studio 6, I assume it
>> simply maps to msvc's atof.
> Yes, that would make sense.
> Regarding the question you ask in a later mail, apparently OpenGL is enabled according to the result of a test (noted in the source as "FIXME" !): (applicationsettings.cpp, line 51)
>   _useOpenGL = _settings->value("general/opengl", QVariant(QGLPixelBuffer::hasOpenGLPbuffers())).toBool();
> While writing this mail I have just received another message from you where you say that you can't reproduce the problem. I'll ask my colleague who is using kst Windows the most lately if he can provide more details. I have also attached the log he produced trying to debug that under MSVC (but like me he's only a hobbyist programmer, so we couldn't really make something of the file). It seems to get worse when there are more plots / windows, so maybe try that. We see the memory usage increasing by a couple of kbytes every time with the system activity / task manager.
> Again, thanks a lot!
> Nicolas

I now can reproduce the increasing memory usage while resizing the window,
but the leak information is too noisy because kst doesn't cleanup on exit.

It seems the memory handling is very wired: statics, singeltons, refcounted
pointers, pointers shared between threads, containers with shared pointers,
and so on. ATM you can't cleanup because the kst will crash:

Application::~Application() {
  // lets not clean up before we leave....
  // if we do, we'll end up crashing on exit
  // unless we fix some stuff related to destruction
  // in a multi-threaded situation.
  //delete _mainWindow;
  //delete _dialogDefaults;

Is it planned to redesign this stuff (e.g. using new Qt4 templates)?


More information about the Kst mailing list