Genymobile / scrcpy

Display and control your Android device
Apache License 2.0
105.09k stars 10.21k forks source link

Windows goes to sleep causing Android machine memory to increase #5024

Open erd-yunmu opened 5 days ago

erd-yunmu commented 5 days ago

Environment

Describe the bug I am using Windows to interact with rk3588 development and found that the memory usage is increased Causes the memory to be full, terminating all running background programs I think it may be caused by the data packet not being released.

Here is how I tested Reappear soon:First open scrcpy and enter the desktop, then open the system camera --->stand still,Next, put your computer Windows into sleep mode. Select Sleep on the power button in the lower left corner of Windows and wait for 1 minute before waking up. Then open adb shell and execute top to find that the memory usage is more than 80%. As shown clipboard-202406251339-poymy image

I am using 16GB of RAM I have tried Android 12 and Android 13 and both have this problem This happens only when the computer is shut down after sleeping and the adb connection is disconnected. I have also tried disconnecting the adb cable and this does not happen.

Normal memory is as shown in the figure image

I have finished talking about the above questions. If you need testing, I am willing to test the software for you. Thank you!

erd-yunmu commented 5 days ago

I used this software and it did not increase the memory capacity. https://www.vysor.io/

rom1v commented 5 days ago

Thank you for the report.

Given the description, it looks like the device buffers input data indefinitely if it is not consumed by the client (applying a backpressure). But if I "freeze" (Ctrl+z on Linux) the client process, I cannot reproduce on my device.

First open scrcpy and enter the desktop, then open the system camera --->stand still,Next, put your computer Windows into sleep mode.

I fail to reproduce: when I put a Windows into sleep mode, when I wake it up, scrcpy is disconnected (the adb socket is closed probably).

Can you reproduce with a different device (other than rk3588)?

Does it also happen with another encoder?

rom1v commented 5 days ago

Also, does it happen if you capture the camera directly (instead of mirroring the screen and opening the camera app)?

scrcpy --video-source=camera
erd-yunmu commented 5 days ago

Sorry, I didn't make that clear.

First open scrcpy and enter the desktop, then open the system camera --->stand still,Next, put your computer Windows into sleep mode.

  1. Open scrcpy software in Windows
  2. Use the mouse to open the system camera on the scrcpy desktop
  3. Put the computer to sleep
  4. Wait for 1 minute
  5. Wake up the Windows computer again
  6. Use adb to connect to the Android device and execute top to check the memory usage to see if it has increased This is how I did it, please try again
rom1v commented 5 days ago

Use the mouse to open the system camera on the scrcpy desktop

You mean opening the camera app on Android while scrcpy is running, is that correct? (clicking via scrcpy or not is irrelevant, it is opened on the device anyway)

Use adb to connect to the Android device and execute top to check the memory usage to see if it has increased This is how I did it, please try again

I tried again, and when I wake up, memory usage on Android is normal (and also scrcpy is closed on wake up). But this is not the same device as yours.

erd-yunmu commented 5 days ago

My Xiaomi phone 12GB also has a similar situation, which does cause the memory to increase image For Xiaomi, I do this: I use scrcpy on the computer to open the Xiaomi 12 mobile phone camera, and then the computer goes to sleep. At this time, the mobile phone camera is always open and not closed. The memory starts to increase slowly. It is recommended to wait 1-2 minutes before waking up the computer during sleep, open adb shell and execute top to find that the memory is occupied a lot.

rom1v commented 5 days ago

In adb shell, run top with these arguments:

top -o PID,USER,CMDLINE,%MEM

It will list the process sorted by memory usage.

erd-yunmu commented 5 days ago

image It seems that the application does not take up memory

erd-yunmu commented 4 days ago

hi is there any solution? If I haven't explained it clearly, we can contact you via Google chat and I will tell you the steps to reproduce the problem.