Python C-API geschwindigkeitsvergleich von 2 Funktionen



  • Hi leute, ich habe mir jetzt eine funktioniernde Python einbindung für ein größeres C++ Projekt erstellt. Da hier sehr häufig ein rückgabe von true bzw false erfordert wird wollte ich hier nach einer möglichkeit fragen, wie ich meine momentan 2 existierenden funktionen vergleichen kann (beide geben ein Python konformes true bzw false zurück).

    Nochmal kurz und knapp: Ich habe 2 Funktionen die das selbe machen, jedoch auf verschiedene Arten und ich möchte schnellere Funktion rausfinden.
    Gibt es hier eine einfache möglichkeit, das rauszufinden?

    MfG Krauzi



  • Miss doch die Zeit. GetTickCount() wäre eine Möglichkeit.



  • Hm ich habe irgendwo gelesen, dass der timer nur alle 16ms oder so geupdated wird (von windoof) nur ist das anscheinend nicht genug für mich, denn beide funktionen werden demnach in 0ms ausgeführt...:

    else if (Query=="BanCount") {
    			long cTick, nTick;
    			cTick = GetTickCount();
    			PyInt_FromLong(gGHost->m_DB->BanCount( PyString_AsString(ARG1) ));
    			nTick = GetTickCount();
    			cout << "Executing Time PyIntFromLong:" << nTick - cTick << endl;
    
    			cTick = GetTickCount();
    			Py_BuildValue( "i", gGHost->m_DB->BanCount( PyString_AsString(ARG1) ));
    			nTick = GetTickCount();
    			cout << "Executing Time PyBuildValue:" << nTick - cTick << endl;
    			return Py_BuildValue( "i", gGHost->m_DB->BanCount( PyString_AsString(ARG1) ) );
    		}
    

    EDIT: Ok das problem hat sich gelöst: timeGetTime() wäre die geeignetere Funktion. Damit ergibt sich für eine höhrere geschwindigkeit für ersteren funktion(PyInt_FromLong).

    Danke jedoch für deine Hilfe connan, ohne dich wäre ich nicht über GetTickCount auf timeGetTime gekommen :D.


Anmelden zum Antworten