Ik ben sinds kort bezig in C#.
Leuke taal, iets toegankelijker dan c++ maar ook wel langzamer.
Maar zo langzaam als ik het nu heb lijkt me wel heel sterk!
Ik ben met een loopje bezig die de framerate constant moet proberen te houden op 100 fps.
Hij komt echter niet boven de 64 uit!
Hier de code:
Wat maakt deze code zo langzaam? als ik namelijk een writeline buiten de if in de while zet gaat hij als een speer! Zou er een tijdsverschilletje zitten bij de gettickcount ofzo?
Eigenlijk weet ik niet eens of dit wel de manier is om zo een loop te maken. Maar dit leek mij redelijk logisch. Of kan ik het beter anders doen?
Alvast erg bedankt!
Leuke taal, iets toegankelijker dan c++ maar ook wel langzamer.
Maar zo langzaam als ik het nu heb lijkt me wel heel sterk!
Ik ben met een loopje bezig die de framerate constant moet proberen te houden op 100 fps.
Hij komt echter niet boven de 64 uit!
Hier de code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| using System; class testloop { private static int intFramesPerSecond = 100; // framerate in fps public static void Main() // Entry point { MainGameLoop(); } private static int GetTickCount() { return System.Environment.TickCount; } public static void MainGameLoop() { //init some vars :) int intCurrentTickCount = GetTickCount(); bool m_blnSurfacesInitialised = true; int framerate=0; int i=0; int lastsecond = GetTickCount(); //main loop (always true atm) while ( m_blnSurfacesInitialised == true ) { //if the number of miliseconds have passed then do all the stuff! if (GetTickCount() - (1000/intFramesPerSecond) >= intCurrentTickCount) { //als seconde voorbij show framerate van de laatste seconde. if (GetTickCount() - 1000 >= lastsecond) { lastsecond = GetTickCount(); framerate = i; i=0; Console.WriteLine("Framerate : {0}",framerate); } //zet framerate van deze seconde op + 1 i++; //get current tick count intCurrentTickCount = GetTickCount(); } } } } |
Wat maakt deze code zo langzaam? als ik namelijk een writeline buiten de if in de while zet gaat hij als een speer! Zou er een tijdsverschilletje zitten bij de gettickcount ofzo?
Eigenlijk weet ik niet eens of dit wel de manier is om zo een loop te maken. Maar dit leek mij redelijk logisch. Of kan ik het beter anders doen?
Alvast erg bedankt!