Replace string/hash based execution out look up for indices, 10-50% speed up in lookup code. Fix bugs calling dependent functions.
This commit is contained in:
@@ -108,9 +108,15 @@ namespace ScriptCanvasTests
|
||||
|
||||
auto m_serializeContext = s_application->GetSerializeContext();
|
||||
auto m_behaviorContext = s_application->GetBehaviorContext();
|
||||
|
||||
ScriptCanvasTesting::Reflect(m_serializeContext);
|
||||
ScriptCanvasTesting::Reflect(m_behaviorContext);
|
||||
ScriptCanvasTesting::GlobalBusTraits::Reflect(m_serializeContext);
|
||||
ScriptCanvasTesting::GlobalBusTraits::Reflect(m_behaviorContext);
|
||||
ScriptCanvasTesting::LocalBusTraits::Reflect(m_serializeContext);
|
||||
ScriptCanvasTesting::LocalBusTraits::Reflect(m_behaviorContext);
|
||||
ScriptCanvasTesting::PerformanceStressBusTraits::Reflect(m_serializeContext);
|
||||
ScriptCanvasTesting::PerformanceStressBusTraits::Reflect(m_behaviorContext);
|
||||
ScriptCanvasTesting::NativeHandlingOnlyBusTraits::Reflect(m_serializeContext);
|
||||
ScriptCanvasTesting::NativeHandlingOnlyBusTraits::Reflect(m_behaviorContext);
|
||||
ScriptCanvasTesting::TestTupleMethods::Reflect(m_behaviorContext);
|
||||
|
||||
::Nodes::InputMethodSharedDataSlotExampleNode::Reflect(m_serializeContext);
|
||||
::Nodes::InputMethodSharedDataSlotExampleNode::Reflect(m_behaviorContext);
|
||||
|
||||
@@ -130,6 +130,87 @@ namespace ScriptCanvasTesting
|
||||
}
|
||||
}
|
||||
|
||||
class PerformanceStressEBusHandler
|
||||
: public PerformanceStressEBus::Handler
|
||||
, public AZ::BehaviorEBusHandler
|
||||
{
|
||||
public:
|
||||
AZ_EBUS_BEHAVIOR_BINDER(
|
||||
PerformanceStressEBusHandler, "{EAE36675-F06B-4755-B3A5-CEC9495DC92E}", AZ::SystemAllocator
|
||||
, ForceStringCompare0
|
||||
, ForceStringCompare1
|
||||
, ForceStringCompare2
|
||||
, ForceStringCompare3
|
||||
, ForceStringCompare4
|
||||
, ForceStringCompare5
|
||||
, ForceStringCompare6
|
||||
, ForceStringCompare7
|
||||
, ForceStringCompare8
|
||||
, ForceStringCompare9
|
||||
);
|
||||
|
||||
void ForceStringCompare0() override
|
||||
{
|
||||
Call(FN_ForceStringCompare0);
|
||||
}
|
||||
void ForceStringCompare1() override
|
||||
{
|
||||
Call(FN_ForceStringCompare1);
|
||||
}
|
||||
void ForceStringCompare2() override
|
||||
{
|
||||
Call(FN_ForceStringCompare2);
|
||||
}
|
||||
void ForceStringCompare3() override
|
||||
{
|
||||
Call(FN_ForceStringCompare3);
|
||||
}
|
||||
void ForceStringCompare4() override
|
||||
{
|
||||
Call(FN_ForceStringCompare4);
|
||||
}
|
||||
void ForceStringCompare5() override
|
||||
{
|
||||
Call(FN_ForceStringCompare5);
|
||||
}
|
||||
void ForceStringCompare6() override
|
||||
{
|
||||
Call(FN_ForceStringCompare6);
|
||||
}
|
||||
void ForceStringCompare7() override
|
||||
{
|
||||
Call(FN_ForceStringCompare7);
|
||||
}
|
||||
void ForceStringCompare8() override
|
||||
{
|
||||
Call(FN_ForceStringCompare8);
|
||||
}
|
||||
void ForceStringCompare9() override
|
||||
{
|
||||
Call(FN_ForceStringCompare9);
|
||||
}
|
||||
};
|
||||
|
||||
void PerformanceStressBusTraits::Reflect(AZ::ReflectContext* context)
|
||||
{
|
||||
if (AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(context))
|
||||
{
|
||||
behaviorContext->EBus<PerformanceStressEBus>("PerformanceStressEBus")
|
||||
->Handler<PerformanceStressEBusHandler>()
|
||||
->Event("ForceStringCompare0", &PerformanceStressEBus::Events::ForceStringCompare0)
|
||||
->Event("ForceStringCompare1", &PerformanceStressEBus::Events::ForceStringCompare1)
|
||||
->Event("ForceStringCompare2", &PerformanceStressEBus::Events::ForceStringCompare2)
|
||||
->Event("ForceStringCompare3", &PerformanceStressEBus::Events::ForceStringCompare3)
|
||||
->Event("ForceStringCompare4", &PerformanceStressEBus::Events::ForceStringCompare4)
|
||||
->Event("ForceStringCompare5", &PerformanceStressEBus::Events::ForceStringCompare5)
|
||||
->Event("ForceStringCompare6", &PerformanceStressEBus::Events::ForceStringCompare6)
|
||||
->Event("ForceStringCompare7", &PerformanceStressEBus::Events::ForceStringCompare7)
|
||||
->Event("ForceStringCompare8", &PerformanceStressEBus::Events::ForceStringCompare8)
|
||||
->Event("ForceStringCompare9", &PerformanceStressEBus::Events::ForceStringCompare9)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
class LocalEBusHandler
|
||||
: public LocalEBus::Handler
|
||||
, public AZ::BehaviorEBusHandler
|
||||
|
||||
@@ -46,6 +46,27 @@ namespace ScriptCanvasTesting
|
||||
};
|
||||
using GlobalEBus = AZ::EBus<GlobalBusTraits>;
|
||||
|
||||
class PerformanceStressBusTraits : public AZ::EBusTraits
|
||||
{
|
||||
public:
|
||||
AZ_TYPE_INFO(PerformanceStressBusTraits, "{68AF0B81-70F4-4822-8127-AAC442D924C7}");
|
||||
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
virtual void ForceStringCompare0() = 0;
|
||||
virtual void ForceStringCompare1() = 0;
|
||||
virtual void ForceStringCompare2() = 0;
|
||||
virtual void ForceStringCompare3() = 0;
|
||||
virtual void ForceStringCompare4() = 0;
|
||||
virtual void ForceStringCompare5() = 0;
|
||||
virtual void ForceStringCompare6() = 0;
|
||||
virtual void ForceStringCompare7() = 0;
|
||||
virtual void ForceStringCompare8() = 0;
|
||||
virtual void ForceStringCompare9() = 0;
|
||||
};
|
||||
using PerformanceStressEBus = AZ::EBus<PerformanceStressBusTraits>;
|
||||
|
||||
|
||||
class LocalBusTraits : public AZ::EBusTraits
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -43,7 +43,11 @@ namespace ScriptCanvasTesting
|
||||
NodeableTestingLibrary::Reflect(context);
|
||||
|
||||
ScriptCanvasTestingNodes::BehaviorContextObjectTest::Reflect(context);
|
||||
ScriptCanvasTesting::Reflect(context);
|
||||
ScriptCanvasTesting::GlobalBusTraits::Reflect(context);
|
||||
ScriptCanvasTesting::LocalBusTraits::Reflect(context);
|
||||
ScriptCanvasTesting::PerformanceStressBusTraits::Reflect(context);
|
||||
ScriptCanvasTesting::NativeHandlingOnlyBusTraits::Reflect(context);
|
||||
ScriptCanvasTesting::TestTupleMethods::Reflect(context);
|
||||
}
|
||||
|
||||
void ScriptCanvasTestingSystemComponent::GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& provided)
|
||||
|
||||
Reference in New Issue
Block a user