void PerformanceMainLayer::menuCallback(CCObject* pSender)
{
    CCMenuItemFont* pItem = (CCMenuItemFont*)pSender;
    int nIndex = pItem->getZOrder() - kItemTagBasic;

    switch (nIndex)
    {
    case 0:
        runNodeChildrenTest();
        break;
    case 1:
        runParticleTest();
        break;
    case 2:
        runSpriteTest();
        break;
    case 3:
        runTextureTest();
        break;
    case 4:
        runTouchesTest();
        break;
    default:
        break;
    }
}
#include "PerformanceCallbackTest.h"
#include "PerformanceMathTest.h"

enum
{
    LINE_SPACE = 40,
    kItemTagBasic = 1000,
};

struct {
	const char *name;
	std::function<void(Ref*)> callback;
} g_testsName[] =
{
    { "Alloc Test", [](Ref*sender){runAllocPerformanceTest(); } },
    { "NodeChildren Test", [](Ref*sender){runNodeChildrenTest();} },
	{ "Particle Test",[](Ref*sender){runParticleTest();} },
	{ "Particle3D Perf Test",[](Ref*sender){runParticle3DTest();} },
	{ "Sprite Perf Test",[](Ref*sender){runSpriteTest();} },
	{ "Texture Perf Test",[](Ref*sender){runTextureTest();} },
	{ "Touches Perf Test",[](Ref*sender){runTouchesTest();} },
    { "Label Perf Test",[](Ref*sender){runLabelTest();} },
    //{ "Renderer Perf Test",[](Ref*sender){runRendererTest();} },
    { "Container Perf Test", [](Ref* sender ) { runContainerPerformanceTest(); } },
    { "EventDispatcher Perf Test", [](Ref* sender ) { runEventDispatcherPerformanceTest(); } },
    { "Scenario Perf Test", [](Ref* sender ) { runScenarioTest(); } },
    { "Callback Perf Test", [](Ref* sender ) { runCallbackPerformanceTest(); } },
    { "Math Perf Test", [](Ref* sender ) { runMathPerformanceTest(); } },
};

static const int g_testMax = sizeof(g_testsName)/sizeof(g_testsName[0]);