From 12dcc9b25ac8372a9fcf84583dab533839f55b3c Mon Sep 17 00:00:00 2001 From: Alauddin Maulana Hirzan Date: Fri, 10 May 2024 19:13:09 +0700 Subject: [PATCH] First Commit --- Benchmark/Benchmarking.py | 68 ++++++++++++++++++++++++++++++++++++++ Benchmark/requirements.txt | 1 + README.md | 7 ++++ 3 files changed, 76 insertions(+) create mode 100644 Benchmark/Benchmarking.py create mode 100644 Benchmark/requirements.txt create mode 100644 README.md diff --git a/Benchmark/Benchmarking.py b/Benchmark/Benchmarking.py new file mode 100644 index 0000000..a824979 --- /dev/null +++ b/Benchmark/Benchmarking.py @@ -0,0 +1,68 @@ +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() diff --git a/Benchmark/requirements.txt b/Benchmark/requirements.txt new file mode 100644 index 0000000..0704b2d --- /dev/null +++ b/Benchmark/requirements.txt @@ -0,0 +1 @@ +psutil==5.9.8 diff --git a/README.md b/README.md new file mode 100644 index 0000000..5381800 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Python Useful Scripts # + +This repository contains useful programs written in **Python 3.9**. Each folder accompanied with **requirements.txt** for easier dependency access. + +## Currently Avaiable: ## +* Benchmark Programs : using **psutil** to obtain performance +* *adding more soon*