Feature #2071

3D view: profile 3D view for performance when number of particles is large

Added by pospelov over 2 years ago. Updated over 2 years ago.

Status:ResolvedStart date:11 Jun 2018
Priority:NormalDue date:
Assignee:pospelov% Done:

0%

Category:-
Target version:Sprint 38

History

#1 Updated by pospelov over 2 years ago

  • Status changed from Backlog to Sprint
  • Target version set to Sprint 38

#2 Updated by pospelov over 2 years ago

  • Subject changed from Profile 3D view for performance when number of particles is large to 3D view: profile 3D view for performance when number of particles is large

#3 Updated by pospelov over 2 years ago

  • Assignee set to pospelov

#4 Updated by pospelov over 2 years ago

  • Status changed from Sprint to Resolved

Seems that the method RealSpaceBuilder::populateParticle() is one of the source of slow performance.
It is called in a tight loop (loop over lattice nodes, or over random particle distribution). And as far as I can judge,
it is always create same particle (with same materials) which is only placed differently.

At the end it boils down to operator==(QString, QString) and SessionItem::isTag.

Proposed solution:
  • Extract particle creation from RealSpaceBuilder::populateParticle() and move it outside of the loop.

Also available in: Atom PDF