Kotlin - How to get maxMemory, freeMemory, totalMemory, used memory in megabytes and understand the differences between them
If you are new in kotlin or JVM based system and want to know how to get free memory, total memory and max memory from the runtime class, here's I have shared some example to answer some beginners question.
Let's start with understanding whats the difference between each of them:
Differences between these memory options
- freeMemory is currently available memory which can be allocated to future objects
- totalMemory is the total amount of memory reserved for the java process
- maxMemory equals to initial heap size, configured by -Xmx value
How to get free memory in Kotlin
Get currently free memory available for creating object. Caution: this is not the total free available memory
Runtime.getRuntime().freeMemory()
How to get total memory in Kotlin
Used memory currently occupied by existing objects + free memory available for new objects.
Runtime.getRuntime.totalMemory()
How to get used memory in Kotlin
It can be calculated from totalMemory and freeMemory
usedMemory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
Converting size in MegaBytes
Each of the memory function returns size in bytes. Then we convert in MB by dividing with 1024*1024
Output for the given kotlin example
Total memory: 256MB Free memory: 253MB Used memory: 3MB Max memory: 4096MB
Comments
Leave a comment
You are not LoggedIn but you can comment as an anonymous user which requires manual approval. For better experience please Login.