Python-Useful-Scripts/Benchmark/Benchmarking.py

68 lines
2 KiB
Python

import psutil
import time
import os
class Benchmarking:
def __init__(self):
self.pid = os.getpid()
self.proc = psutil.Process(self.pid)
def get_cpu_percent(self):
self.cpu_percent = self.proc.cpu_percent()
return self.cpu_percent
def get_memory_text_usage(self):
self.memory_text = self.proc.memory_full_info().text / 1024 / 1024
return self.memory_text
def get_memory_data_usage(self):
self.memory_data = self.proc.memory_full_info().data / 1024 / 1024
return self.memory_data
def get_memory_rss_usage(self):
self.memory_rss = self.proc.memory_full_info().rss / 1024 / 1024
return self.memory_rss
def get_memory_vms_usage(self):
self.memory_vms = self.proc.memory_full_info().vms / 1024 / 1024
return self.memory_vms
def set_start_time(self):
self.start = time.time()
def set_end_time(self):
self.end = time.time()
def get_processing_time(self):
self.proc_time = self.end - self.start
return self.proc_time
# Main Script Here
def main():
# Create Object for Benchmark
benchmark = Benchmarking()
# Performance Benchmark
cpu_perc = benchmark.get_cpu_percent() # Call Twice to Avoid 0. Always Call to Get Latest CPU
cpu_perc = benchmark.get_cpu_percent()
memory_text = benchmark.get_memory_text_usage()
memory_data = benchmark.get_memory_data_usage()
memory_rss = benchmark.get_memory_rss_usage()
memory_vms = benchmark.get_memory_vms_usage()
# Processing Time Benchmark
start_time = benchmark.set_start_time()
time.sleep(5)
end_time = benchmark.set_end_time()
# Get Processing Time
processing_time = benchmark.get_processing_time()
# Display Result
info: str = f"""Process ID : {benchmark.pid}
CPU Usage : {cpu_perc}%
Memory Text : {memory_text} MB
Memory Data : {memory_data} MB
Memory RSS : {memory_rss} MB
Memory VMS : {memory_vms} MB
Processing Time : {processing_time}s"""
print(info)
if __name__ == "__main__":
main()