1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

[Python] How to get accurate process CPU and memory usage with python?

Discussão em 'Python' iniciado por Stack, Novembro 24, 2025.

  1. Stack

    Stack Membro Participativo

    I am trying to create a process monitor but I am unable to get accurate results comparing my results to windows task manager.

    I have been using psutil which seems to work fine when looking at the overall cpu and memory usage but doesn't appear to be very accurate for a single process. Memory usage is always higher than task manager and CPU it always random.

    I am setting the process once on initialise with self.process = psutil.Process(self.pid) and then calling the below method once a second, the process in task manager is running at a constant 5.4% cpu usage and 130mb ram however the below code produces:

    CPU: 12.5375
    Memory 156459008
    CPU: 0.0
    Memory 156459008
    CPU: 0.0
    Memory 156459008
    CPU: 0.0
    Memory 156459008
    CPU: 12.5375
    Memory 156459008
    CPU: 0.0
    Memory 156459008
    CPU: 0.0
    Memory 156459008


    Example code:

    def process_info(self):
    # I am calling this method twice because I read the first time gets ignored?
    ignore_cpu = self.process.cpu_percent(interval=None) / psutil.cpu_count()
    time.sleep(0.1)
    process_cpu = self.process.cpu_percent(interval=None) / psutil.cpu_count()

    # I also tried the below code but it was much worse than above
    # for j in range(10):
    # if j == 0:
    # test_list = []
    # p_cpu = self.process.cpu_percent(interval=0.1) / psutil.cpu_count()
    # test_list.append(p_cpu)
    # process_cpu = (sum(test_list)) / len(test_list)

    # Memory is about 25mb higher than task manager
    process_memory = self.process.memory_info().rss

    print(f"CPU: {process_cpu}")
    print(f"Memory: {process_memory}")


    am I using psutil incorrectly or is there a more accurate way to grab the data?

    Continue reading...

Compartilhe esta Página