Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-25831

qt freezes for 10+ seconds when opening context menu over c++ object

    XMLWordPrintable

    Details

    • Type: Suggestion
    • Status: Reported
    • Priority: Not Evaluated
    • Resolution: Unresolved
    • Affects Version/s: Qt Creator 4.15.0
    • Fix Version/s: None
    • Component/s: C/C++/Obj-C++ Support
    • Labels:
      None

      Description

      i came across a bottleneck when working on msgpack_cpp adapters for custom types: msgpack_cpp allows the creation of adaptors for custom types by template specialization of a `convert<>` struct, something like:

      #include <msgpack.hpp>
      namespace msgpack {
      MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) {
      namespace adaptor {
      
      struct my_type
      {};
      
      template<>
      struct convert<my_type>
      {
          msgpack::object const& operator()(msgpack::object const& object, my_type& value) const;
      };
      
      }
      

      when opening the context menu (right-click) on `operator()`, the context menu opens immediately, but qtc freezes for 10+ seconds (in my real-world codebase). most of the cpu time seems to be spent inside `CPlusPlus::ClassOrNamespace::lookupType_helper`.

      msgpack_cpp brings a lot of built-in adaptors (specialisations of convert<>). so i wonder if this will cause any performance bottleneck, which can be worked around in one way or another.

      https://github.com/msgpack/msgpack-c/wiki/v2_0_cpp_adaptor
      https://github.com/msgpack/msgpack-c/tree/cpp_master/include/msgpack/adaptor

        Attachments

        1. untitled.tar.xz
          0.7 kB
          tim blechmann
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            kandeler Christian Kandeler
            Reporter:
            timblechmann tim blechmann
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:

                Gerrit Reviews

                There are no open Gerrit changes