Since we might need to check the overhead of some iteration cases,
Let we print the number of iteration when we check performance marker.
Change-Id: I038cc52dbc875a07def7868ec81115f608be27db
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
{
if(mProcessors.Count() != 0)
{
{
if(mProcessors.Count() != 0)
{
- DALI_TRACE_SCOPE(gTraceFilter, "DALI_CORE_RUN_PROCESSORS");
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << mProcessors.Count() << "]";
+ DALI_TRACE_BEGIN_WITH_MESSAGE(gTraceFilter, "DALI_CORE_RUN_PROCESSORS", stream.str().c_str());
+ }
+#endif
// Copy processor pointers to prevent changes to vector affecting loop iterator.
Dali::Vector<Integration::Processor*> processors(mProcessors);
// Copy processor pointers to prevent changes to vector affecting loop iterator.
Dali::Vector<Integration::Processor*> processors(mProcessors);
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << mProcessors.Count();
+ if(mProcessorUnregistered)
+ {
+ stream << ", processor changed";
+ }
+ stream << "]";
+ DALI_TRACE_END_WITH_MESSAGE(gTraceFilter, "DALI_CORE_RUN_PROCESSORS", stream.str().c_str());
+ }
+#endif
{
if(mPostProcessors.Count() != 0)
{
{
if(mPostProcessors.Count() != 0)
{
- DALI_TRACE_SCOPE(gTraceFilter, "DALI_CORE_RUN_POST_PROCESSORS");
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << mPostProcessors.Count() << "]";
+ DALI_TRACE_BEGIN_WITH_MESSAGE(gTraceFilter, "DALI_CORE_RUN_POST_PROCESSORS", stream.str().c_str());
+ }
+#endif
// Copy processor pointers to prevent changes to vector affecting loop iterator.
Dali::Vector<Integration::Processor*> processors(mPostProcessors);
// Copy processor pointers to prevent changes to vector affecting loop iterator.
Dali::Vector<Integration::Processor*> processors(mPostProcessors);
+
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << mPostProcessors.Count();
+ if(mPostProcessorUnregistered)
+ {
+ stream << ", post processor changed";
+ }
+ stream << "]";
+ DALI_TRACE_END_WITH_MESSAGE(gTraceFilter, "DALI_CORE_RUN_POST_PROCESSORS", stream.str().c_str());
+ }
+#endif
const MessageContainer::Iterator end = mImpl->eventMessageQueue.End();
if(iter != end)
{
const MessageContainer::Iterator end = mImpl->eventMessageQueue.End();
if(iter != end)
{
- DALI_TRACE_SCOPE(gTraceFilter, "DALI_NOTIFICATION_PROCESS_MESSAGE");
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << mImpl->eventMessageQueue.Count() << "]";
+ DALI_TRACE_BEGIN_WITH_MESSAGE(gTraceFilter, "DALI_NOTIFICATION_PROCESS_MESSAGE", stream.str().c_str());
+ }
+#endif
for(; iter != end; ++iter)
{
(*iter)->Process(0u /*ignored*/);
}
for(; iter != end; ++iter)
{
(*iter)->Process(0u /*ignored*/);
}
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << mImpl->eventMessageQueue.Count() << "]";
+ DALI_TRACE_END_WITH_MESSAGE(gTraceFilter, "DALI_NOTIFICATION_PROCESS_MESSAGE", stream.str().c_str());
+ }
+#endif
}
// release the processed messages from event side queue
mImpl->eventMessageQueue.Clear();
}
// release the processed messages from event side queue
mImpl->eventMessageQueue.Clear();
const InterfaceContainer::iterator end2 = mImpl->eventInterfaceQueue.end();
if(iter2 != end2)
{
const InterfaceContainer::iterator end2 = mImpl->eventInterfaceQueue.end();
if(iter2 != end2)
{
- DALI_TRACE_SCOPE(gTraceFilter, "DALI_NOTIFICATION_NOTIFY_COMPLETED");
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << mImpl->eventInterfaceQueue.size() << "]";
+ DALI_TRACE_BEGIN_WITH_MESSAGE(gTraceFilter, "DALI_NOTIFICATION_NOTIFY_COMPLETED", stream.str().c_str());
+ }
+#endif
for(; iter2 != end2; ++iter2)
{
CompleteNotificationInterface* interface = iter2->first;
for(; iter2 != end2; ++iter2)
{
CompleteNotificationInterface* interface = iter2->first;
interface->NotifyCompleted(std::move(iter2->second));
}
}
interface->NotifyCompleted(std::move(iter2->second));
}
}
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << mImpl->eventInterfaceQueue.size() << "]";
+ DALI_TRACE_END_WITH_MESSAGE(gTraceFilter, "DALI_NOTIFICATION_NOTIFY_COMPLETED", stream.str().c_str());
+ }
+#endif
}
// just clear the container, we dont own the objects
mImpl->eventInterfaceQueue.clear();
}
// just clear the container, we dont own the objects
mImpl->eventInterfaceQueue.clear();
longPress->SetSourceType(longPressEvent.sourceType);
longPress->SetSourceData(longPressEvent.sourceData);
longPress->SetSourceType(longPressEvent.sourceType);
longPress->SetSourceData(longPressEvent.sourceData);
- DALI_TRACE_SCOPE(gTraceFilter, "DALI_EMIT_LONG_PRESS_GESTURE_SIGNAL");
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << gestureDetectors.size() << "]";
+ DALI_TRACE_BEGIN_WITH_MESSAGE(gTraceFilter, "DALI_EMIT_LONG_PRESS_GESTURE_SIGNAL", stream.str().c_str());
+ }
+#endif
Dali::Actor actorHandle(actor);
const GestureDetectorContainer::const_iterator endIter = gestureDetectors.end();
Dali::Actor actorHandle(actor);
const GestureDetectorContainer::const_iterator endIter = gestureDetectors.end();
{
static_cast<LongPressGestureDetector*>(*iter)->EmitLongPressGestureSignal(actorHandle, Dali::LongPressGesture(longPress.Get()));
}
{
static_cast<LongPressGestureDetector*>(*iter)->EmitLongPressGestureSignal(actorHandle, Dali::LongPressGesture(longPress.Get()));
}
+
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << gestureDetectors.size() << "]";
+ DALI_TRACE_END_WITH_MESSAGE(gTraceFilter, "DALI_EMIT_LONG_PRESS_GESTURE_SIGNAL", stream.str().c_str());
+ }
+#endif
mSceneObject->AddGesture(*pan.Get());
}
mSceneObject->AddGesture(*pan.Get());
}
- DALI_TRACE_SCOPE(gTraceFilter, "DALI_EMIT_PAN_GESTURE_SIGNAL");
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << gestureDetectors.size() << "]";
+ DALI_TRACE_BEGIN_WITH_MESSAGE(gTraceFilter, "DALI_EMIT_PAN_GESTURE_SIGNAL", stream.str().c_str());
+ }
+#endif
Dali::Actor actorHandle(actor);
Dali::Actor actorHandle(actor);
{
static_cast<PanGestureDetector*>(*iter)->EmitPanGestureSignal(actorHandle, Dali::PanGesture(pan.Get()));
}
{
static_cast<PanGestureDetector*>(*iter)->EmitPanGestureSignal(actorHandle, Dali::PanGesture(pan.Get()));
}
+
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << gestureDetectors.size() << "]";
+ DALI_TRACE_END_WITH_MESSAGE(gTraceFilter, "DALI_EMIT_PAN_GESTURE_SIGNAL", stream.str().c_str());
+ }
+#endif
pinch->SetSourceType(pinchEvent.sourceType);
pinch->SetSourceData(pinchEvent.sourceData);
pinch->SetSourceType(pinchEvent.sourceType);
pinch->SetSourceData(pinchEvent.sourceData);
- DALI_TRACE_SCOPE(gTraceFilter, "DALI_EMIT_PINCH_GESTURE_SIGNAL");
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << gestureDetectors.size() << "]";
+ DALI_TRACE_BEGIN_WITH_MESSAGE(gTraceFilter, "DALI_EMIT_PINCH_GESTURE_SIGNAL", stream.str().c_str());
+ }
+#endif
Dali::Actor actorHandle(actor);
const GestureDetectorContainer::const_iterator endIter = gestureDetectors.end();
Dali::Actor actorHandle(actor);
const GestureDetectorContainer::const_iterator endIter = gestureDetectors.end();
{
static_cast<PinchGestureDetector*>(*iter)->EmitPinchGestureSignal(actorHandle, Dali::PinchGesture(pinch.Get()));
}
{
static_cast<PinchGestureDetector*>(*iter)->EmitPinchGestureSignal(actorHandle, Dali::PinchGesture(pinch.Get()));
}
+
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << gestureDetectors.size() << "]";
+ DALI_TRACE_END_WITH_MESSAGE(gTraceFilter, "DALI_EMIT_PINCH_GESTURE_SIGNAL", stream.str().c_str());
+ }
+#endif
rotation->SetSourceType(rotationEvent.sourceType);
rotation->SetSourceData(rotationEvent.sourceData);
rotation->SetSourceType(rotationEvent.sourceType);
rotation->SetSourceData(rotationEvent.sourceData);
- DALI_TRACE_SCOPE(gTraceFilter, "DALI_EMIT_ROTATION_GESTURE_SIGNAL");
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << gestureDetectors.size() << "]";
+ DALI_TRACE_BEGIN_WITH_MESSAGE(gTraceFilter, "DALI_EMIT_ROTATION_GESTURE_SIGNAL", stream.str().c_str());
+ }
+#endif
Dali::Actor actorHandle(actor);
const GestureDetectorContainer::const_iterator endIter = gestureDetectors.end();
Dali::Actor actorHandle(actor);
const GestureDetectorContainer::const_iterator endIter = gestureDetectors.end();
{
static_cast<RotationGestureDetector*>(*iter)->EmitRotationGestureSignal(actorHandle, Dali::RotationGesture(rotation.Get()));
}
{
static_cast<RotationGestureDetector*>(*iter)->EmitRotationGestureSignal(actorHandle, Dali::RotationGesture(rotation.Get()));
}
+
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << gestureDetectors.size() << "]";
+ DALI_TRACE_END_WITH_MESSAGE(gTraceFilter, "DALI_EMIT_ROTATION_GESTURE_SIGNAL", stream.str().c_str());
+ }
+#endif
tap->SetSourceType(tapEvent.sourceType);
tap->SetSourceData(tapEvent.sourceData);
tap->SetSourceType(tapEvent.sourceType);
tap->SetSourceData(tapEvent.sourceData);
- DALI_TRACE_SCOPE(gTraceFilter, "DALI_EMIT_TAP_GESTURE_SIGNAL");
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << gestureDetectors.size() << "]";
+ DALI_TRACE_BEGIN_WITH_MESSAGE(gTraceFilter, "DALI_EMIT_TAP_GESTURE_SIGNAL", stream.str().c_str());
+ }
+#endif
Dali::Actor actorHandle(actor);
const GestureDetectorContainer::const_iterator endIter = gestureDetectors.end();
Dali::Actor actorHandle(actor);
const GestureDetectorContainer::const_iterator endIter = gestureDetectors.end();
{
static_cast<TapGestureDetector*>(*iter)->EmitTapGestureSignal(actorHandle, Dali::TapGesture(tap.Get()));
}
{
static_cast<TapGestureDetector*>(*iter)->EmitTapGestureSignal(actorHandle, Dali::TapGesture(tap.Get()));
}
+
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << gestureDetectors.size() << "]";
+ DALI_TRACE_END_WITH_MESSAGE(gTraceFilter, "DALI_EMIT_TAP_GESTURE_SIGNAL", stream.str().c_str());
+ }
+#endif
// 2. Iterate through the stack until it's empty.
if(mRelayoutStack->Size() > 0)
{
// 2. Iterate through the stack until it's empty.
if(mRelayoutStack->Size() > 0)
{
- DALI_TRACE_SCOPE(gTraceFilter, "DALI_RELAYOUT");
+ DALI_TRACE_BEGIN(gTraceFilter, "DALI_RELAYOUT");
+#ifdef TRACE_ENABLED
+ uint32_t relayoutActorCount = 0u;
+ uint32_t negotiatedActorCount = 0u;
+#endif
while(mRelayoutStack->Size() > 0)
{
Dali::Actor actor;
Vector2 size;
while(mRelayoutStack->Size() > 0)
{
Dali::Actor actor;
Vector2 size;
+#ifdef TRACE_ENABLED
+ ++relayoutActorCount;
+#endif
+
mRelayoutStack->GetBack(actor, size);
Actor& actorImpl = GetImplementation(actor);
mRelayoutStack->PopBack();
if(actorImpl.RelayoutRequired() && actorImpl.OnScene())
{
mRelayoutStack->GetBack(actor, size);
Actor& actorImpl = GetImplementation(actor);
mRelayoutStack->PopBack();
if(actorImpl.RelayoutRequired() && actorImpl.OnScene())
{
+#ifdef TRACE_ENABLED
+ ++negotiatedActorCount;
+#endif
DALI_LOG_INFO(gLogFilter, Debug::General, "[Internal::RelayoutController::Relayout] Negotiating %p %s %s (%.2f, %.2f)\n", &actorImpl, actor.GetTypeName().c_str(), actor.GetProperty<std::string>(Dali::Actor::Property::NAME).c_str(), size.width, size.height);
// 3. Negotiate the size with the current actor. Pass it an empty container which the actor
DALI_LOG_INFO(gLogFilter, Debug::General, "[Internal::RelayoutController::Relayout] Negotiating %p %s %s (%.2f, %.2f)\n", &actorImpl, actor.GetTypeName().c_str(), actor.GetProperty<std::string>(Dali::Actor::Property::NAME).c_str(), size.width, size.height);
// 3. Negotiate the size with the current actor. Pass it an empty container which the actor
mRelayoutInfoAllocator.ResetMemoryPool();
PRINT_HIERARCHY;
mRelayoutInfoAllocator.ResetMemoryPool();
PRINT_HIERARCHY;
+
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[relayoutActor:" << relayoutActorCount << " negotiatedActor:" << negotiatedActorCount << "]";
+ DALI_TRACE_END_WITH_MESSAGE(gTraceFilter, "DALI_RELAYOUT", stream.str().c_str());
+ }
+#endif
}
mPerformingRelayout = false;
}
mPerformingRelayout = false;
if(!mFrameCallbacks.empty())
{
if(!mFrameCallbacks.empty())
{
- DALI_TRACE_SCOPE(gTraceFilter, "DALI_FRAME_CALLBACK_UPDATE");
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << mFrameCallbacks.size() << "]";
+ DALI_TRACE_BEGIN_WITH_MESSAGE(gTraceFilter, "DALI_FRAME_CALLBACK_UPDATE", stream.str().c_str());
+ }
+#endif
// If any of the FrameCallback::Update calls returns false, then they are no longer required & can be removed.
auto iter = std::remove_if(
// If any of the FrameCallback::Update calls returns false, then they are no longer required & can be removed.
auto iter = std::remove_if(
return (requests & FrameCallback::CONTINUE_CALLING) == 0;
});
mFrameCallbacks.erase(iter, mFrameCallbacks.end());
return (requests & FrameCallback::CONTINUE_CALLING) == 0;
});
mFrameCallbacks.erase(iter, mFrameCallbacks.end());
+
+#ifdef TRACE_ENABLED
+ if(gTraceFilter && gTraceFilter->IsTraceEnabled())
+ {
+ std::ostringstream stream;
+ stream << "[" << mFrameCallbacks.size() << "]";
+ DALI_TRACE_END_WITH_MESSAGE(gTraceFilter, "DALI_FRAME_CALLBACK_UPDATE", stream.str().c_str());
+ }
+#endif
}
mNodeHierarchyChanged = false;
}
mNodeHierarchyChanged = false;