ReferencedTopDUContext's copy constructor and copy assignment operator are slow as they manipulate reference counts under a mutex lock. The new move constructor and move assignment operator can simply copy the m_topContext pointer's value to the moved-to object, and set the moved-from object's pointer to nullptr.
But simply implementing the move operations will likely not bring significant performance gain. One should also std::move ReferencedTopDUContext objects where appropriate.