Destructor performance

Robin T
2013-12-06
2013-12-14
  • Robin T

    Robin T - 2013-12-06

    AssImp seems to have a bit of a performance problem. Well, OK, either that or my use of it is causing the problem.

    I'm creating an AssImp::Importer instance in a function of my class, reading in the scene and transforming it into my own structures. When the function exits, the AssImp::Importer gets destroyed. Although reading the file and processing it takes 1-2 seconds, I've noticed that unwinding the stack (destroying the importer) takes between 4 and 5. This is in release builds as well as debug builds.

    Can anyone give me some advice on how to minimise the cost of destruction? I can't really see there's anything I can do here.

     
  • Thomas Ziegenhagen

    The main cost in the destructor is the delete[] for each array aiFace::mIndices. We already had an experimental bulk allocator in place that allocated linearly and never released the memory until the Importer instance was destroyed. This cut about 20% time on reading the scene and nearly all time on destroying the scene.

    I think you might be able to re-enable this hack somewhere in the source, but I'm not sure what its current state is.

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks