To calculate the frames per second (FPS) in Java, you can keep track of the time elapsed between successive frames and divide the number of frames by the elapsed time.
Here is an example of how to calculate FPS in a simple game loop:
refer to:lautturi.comlong startTime = System.nanoTime(); int frameCount = 0; while (gameRunning) { // update game state and render frame frameCount++; long elapsedTime = System.nanoTime() - startTime; if (elapsedTime >= 1000000000) { // 1 second float fps = (float) frameCount / (elapsedTime / 1000000000f); System.out.println("FPS: " + fps); startTime = System.nanoTime(); frameCount = 0; } }
In this example, the startTime
variable is initialized to the current time in nanoseconds using the System.nanoTime
method. The frameCount
variable is used to keep track of the number of frames that have been rendered.
The game loop runs until the gameRunning
variable is true
. Inside the loop, the game state is updated and a frame is rendered. The frameCount
variable is incremented to keep track of the number of frames that have been rendered.
After each frame is rendered, the elapsed time is calculated by subtracting the startTime
from the current time using the System.nanoTime
method. If the elapsed time is greater than or equal to 1 second (1000000000 nanoseconds), the FPS is calculated by dividing the frameCount
by the elapsed time in seconds. The FPS is then printed to the console using the println
method of the System.out
object. The startTime
and frameCount
variables are reset to start a new FPS measurement.
This example will print the FPS to the console every second, based on the number of frames rendered during that time.
Note that this is a simple example and may not be suitable for all applications. You may need to adjust the time interval for measuring the FPS and the method of calculating the FPS based on the specific needs of your application.