почему python занимает больше времени при сохранении изображения во второй раз?

#python #performance #appium #screenshot

#python #Производительность #appium #скриншот

Вопрос:

Я хочу сохранить изображение в формате png на жестком диске. В первый раз это занимает 1,6 секунды, а во второй раз и далее это занимает более 3 секунд, почему это?

 import appium.webdriver
from appium import webdriver
import time
import PIL
from PIL import Image
import datetime

"""
Desired Capabilities
"""

desired_cap = {
  "deviceName": "ZY2244B53V",
  "platformName": "Android",
  "appPackage": "==",
  "appActivity": "com.tictok.tictokgame.activities.HomeActivity",
  "automationName": "UiAutomator1"
}
webdriver = webdriver.Remote("http://localhost:4723/wd/hub",desired_cap)
n=0
while n<2:
  a=datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
  print("time of start saving image"   str(a))
  webdriver.save_screenshot("D:/Python/winzo_memory/a.png")
  b=datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
  print("time of end saving image"   str(b))

  a=datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
  print("time of start opening image"   str(a))
  im = Image.open("a.png")
  b=datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
  print("time of end opening image"   str(b))
  n=n 1
  

вывод:

 time of start saving image2020-08-23 06:56:41.252
time of end saving image2020-08-23 06:56:42.837
time of start saving image2020-08-23 06:56:42.904
time of end saving image2020-08-23 06:56:45.952
  

Я пытаюсь сделать снимок экрана в драйвере appium. Есть ли более быстрый способ сделать снимок экрана и позволить python прочитать пиксели? Заранее спасибо.

Моя операционная система — Windows 7. изображение имеет размер 1080X1920. и размер изображения составляет около 1,5 мб. не уверен насчет HDD или SSD.

Комментарии:

1. С этим кодом вы не знаете, работает ли он webdriver.save_screenshot() медленнее, чем раньше, или Image.open() медленнее. Если вы поместите временную метку между этими двумя, вы, вероятно, сможете исключить один из них.

2. Я предполагаю, что это перезаписывает существующий исходный файл (который также открыт), если вы измените имя, на которое сохраняете, это все равно произойдет?

3. с изменяемыми именами это также занимает 3 секунды

4. Насколько велик размер изображения (в месяцах)? Каково его разрешение (ширина и высота)? У вас есть жесткий диск или SSD? Какая у вас операционная система? (Пожалуйста, укажите эту информацию непосредственно в вопросе).

5. Хорошо, теперь, когда у нас есть несколько новых наблюдений, вам следует соответствующим образом обновить вопрос. Это не чтение изображения, это сохранение изображения, которое занимает больше времени. Кроме того, я думаю, вам не нужны 6 из 9 импортированных файлов. Всегда старайтесь максимально сократить код. Это упрощает для нас настройку среды и воспроизведение проблемы. Вероятно, вы также можете удалить строки a=... b=... c=... if a== b== c== , не затрагивая проблему. Просто сделайте копию своего проекта и упростите его для Stack Overflow. Это хорошая практика.