Dramatic changes in performance depending on selection I am working with a very large scene with a lot of poorly optimized objects (from sketchup.) I am trying to optimize my settings so that I can properly navigate the file to make necessary material changes, etc. I have done the usual things like turning off outline selected, and have achieved fairly good performance. However, there is a big problem.

My current setup is that various objects are broken down into 3 Layers, and each is the child of an empty to help organize them.

Normally, I can fly around the scene just fine without any performance impact. But as soon as I select any object other than the camera, my performance completely tanks! It takes 5-10 seconds to respond to any clicks or commands. This makes it almost impossible to select objects and change their materials, add them to groups, etc.

I am trying to understand why my performance can normally be okay, but then goes to nothing when interacting with objects.

I do not think I can share the specific file as it belongs to a client and cannot be freely distributed (and is 400+mb).

Any ideas what could be going on?

UPDATE: I can add new objects to the scene and select them without any performance impact.
Blender selection drawing method is notoriously slow. This well known among the devs and a known limitation of the current system.

Basically highlighting the selection outline doubles the required processing power of regular viewport drawing, yielding almost half the FPS.

Unless you plan on rewritting a whole viewport rendering engine code youself, or a new OpenGL realtime renderer there is not much one can do at the moment, as far as I know, other than await the 2.8 release and its modernized real time rendering based on EEVEE engine.

One possible workaround for the time being is turning off selection highlighting in the * 3D View Properties Region > Display > Outline Selected*, though it is not without its downsides. You won't really know what is currently selected or which is the active object while turned off.