diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsModel.cpp b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsModel.cpp index 45b465955..ee3c0e689 100644 --- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsModel.cpp +++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsModel.cpp @@ -26,6 +26,7 @@ #include "retroshare/rsgxsflags.h" #include "retroshare/rsgxschannels.h" #include "retroshare/rsexpr.h" +#include "gxs/rsgxsprofiler.h" #include "gui/MainWindow.h" #include "gui/mainpagestack.h" @@ -528,6 +529,8 @@ void RsGxsChannelPostsModel::updateSinglePost(const RsGxsChannelPost& post,std:: void RsGxsChannelPostsModel::setPosts(const RsGxsChannelGroup& group, std::vector& posts) { + RsGxsProfiler::Timer prof_timer; + preMods(); initEmptyHierarchy(); @@ -536,8 +539,13 @@ void RsGxsChannelPostsModel::setPosts(const RsGxsChannelGroup& group, std::vecto // createPostsArray(posts); mPosts = posts; + + const long prof_copy_ms = prof_timer.lap(); + std::sort(mPosts.begin(),mPosts.end()); + const long prof_sort_ms = prof_timer.lap(); + for(uint32_t i=0;i channelIds; @@ -583,6 +602,8 @@ void RsGxsChannelPostsModel::update_posts(const RsGxsGroupId& group_id) RsGxsChannelGroup group = groups[0]; + const long prof_grpinfo_ms = prof_timer.lap(); + std::vector *posts = new std::vector(); // We use the heap because the arrays need to be stored accross async std::vector comments ; std::vector votes ; @@ -592,6 +613,14 @@ void RsGxsChannelPostsModel::update_posts(const RsGxsGroupId& group_id) std::cerr << __PRETTY_FUNCTION__ << " failed to retrieve channel messages for channel " << group_id << std::endl; return; } + + const long prof_content_ms = prof_timer.ms(); + + RS_GXS_PROF( prof_grpinfo_ms + prof_content_ms, + "update_posts grp=" << group_id << " posts=" << posts->size() + << " getChannelsInfo=" << prof_grpinfo_ms << "ms" + << " getChannelAllContent=" << prof_content_ms << "ms" + << " service_total=" << (prof_grpinfo_ms + prof_content_ms) << "ms" ); #ifdef DEBUG_CHANNEL_MODEL std::cerr << "Got channel all content for channel " << group_id << std::endl; std::cerr << " posts : " << posts->size() << std::endl;