CPU zeit die einem Prozess zugewiesen wird



  • Hallo zusammen

    wie oben gesagt soll ich ein Programm schreiben dass mir anzeigt wie oft ein Prozess unterbrochen wird (das Programm).

    Komm nichtmehr weiter...

    Hier mein Ansatz:

    void main()
    {
    	LARGE_INTEGER frequency;
    	LARGE_INTEGER t1;
    	LARGE_INTEGER t2[100]; 
    	double Time[40];
    
    	int ia = 0;
    	int ib;
    
    	QueryPerformanceFrequency(&frequency);
    	QueryPerformanceCounter(&t1);
    
    	for(ib = 0; ib < 100; ib ++){
    
    		ia + 1;
    		ia - 1; 
    		//Time[ib] = (t2.HighPart - t1.HighPart) * 1000.0 / frequency.HighPart;
    		QueryPerformanceCounter(&t2[ib]);
    	}
    
    	for(ib = 0; ib < 100; ib++)
    	{
    		printf("%d \n", t2[ib]);
    	}
    
    	_getch();
    }
    

    Im Ende will ich einfach nur jede Milliseckunde die aktuelle Systemzeit festgestellt wird... z.B. 430, 431, 432, 437... dann seh ich ja z.B. bei 432 dass danach ein anderer Prozess dran war.

    Hoffe ihr könnt mir helfen 🙂



  • => WinApi



  • BraucheHilfeBitte schrieb:

    Milliseckunde

    Na ob das reicht.. kannste ja schon mit clock() testen.



  • Reicht meistens nicht.
    Der Standardtimer, den die WinAPI anbietet und von clock() genutzt wird, tickt ca. alle 55ms.
    QueryPerformanceCounter ist für Windows schon richtig, bietet eine höhere Auflösung, natürlich nicht mehr portabel.



  • BraucheHilfeBitte schrieb:

    Hallo zusammen

    wie oben gesagt soll ich ein Programm schreiben dass mir anzeigt wie oft ein Prozess unterbrochen wird (das Programm).
    ...

    Also ehrlich gesagt, ich habe nicht verstanden, was du willst.



  • Wutz schrieb:

    Der Standardtimer, den die WinAPI anbietet und von clock() genutzt wird, tickt ca. alle 55ms.

    WTF 😕

    int main()
    {
      int t1 = clock();
      while (1)
      {
        int t2 = clock();
        if (t2 - t1 > 0)
        {
          printf("%i\n", t2);
          t1 = clock();
        }
      }
    }
    

    Außerdem: #define CLOCKS_PER_SEC 1000

    @TE
    Um das festzustellen musst du schon seehr genau messen. Da reicht vermutlich nicht mal QueryPerformanceCounter. Vielleicht wird das ja mal ins WinAPI Forum verschoben, da wissen sie vielleicht mehr 😃



  • gut hat sich erledigt^^
    ging fast so wie ichs hatte...nur musst ich noch ne unterbrechung von 1 Millisekunde einlegen



  • BraucheHilfeBitte schrieb:

    gut hat sich erledigt^^
    ging fast so wie ichs hatte...nur musst ich noch ne unterbrechung von 1 Millisekunde einlegen

    Ja Toll, klar wird dein Programm unterbrochen wenn du es selbst unterbrichst 😕
    Was soll das denn für eine Aufgabenstellung sein oO



  • Unterbrechung war das Falsche Wort -> Pause



  • BraucheHilfeBitte schrieb:

    Unterbrechung war das Falsche Wort -> Pause

    Pause/Unterbrechung, völlig egal, zeig doch mal bitte deinen Code 😃


Anmelden zum Antworten