root.query_pointer()._data causes high CPU usage
Question: I'm a total noob in Python, programming and Linux. I wrote a simple python
script to track usage time of various apps. I've noticed that after some time
python is going nuts utilizing 100% of the CPU. Turns out it's the code
obtaining mouse position is causing issues.

I've tried running this code in an empty python script:

    
    
    import time
    from Xlib import display
    
    while True:
        d = display.Display().screen().root.query_pointer()._data
        print(d["root_x"], d["root_y"])
        time.sleep(0.1)
    

It works but the CPU usage is increasing over time. With `time.sleep(1)` it
takes some time but sooner or later it reaches crazy values.

I'm on Ubuntu 16.04.1 LTS using Python 3.5 with python3-xlib 0.15


Answer: To keep the CPU usual steady I put `display.Display().screen()` before the
loop so that it didn't have to do so much work all the time. The screen
shouldn't change so nor should that value so it made sense to set it up
before.

    
    
    import time
    from Xlib import display
    disp = display.Display().screen()
    while True:
        d = disp.root.query_pointer()._data
        print(d["root_x"], d["root_y"])
        time.sleep(0.1)
    

I've tested it and it stays at about 0.3% for me.

Hope it this helps :)

