使用不可打印字符时,Ubuntu 中的模拟打字速度很慢

使用不可打印字符时,Ubuntu 中的模拟打字速度很慢

我在 Ubuntu 中遇到了一个问题,这个问题似乎至少从 版本开始就一直存在20.04。该问题似乎与处理不可打印字符(例如\n\t和 )有关\e

以下 Python 代码片段演示了这个问题:

import sys
from pynput.keyboard import Controller, Key

keyboard = Controller()
message = ' '.join(sys.argv[1:])
keyboard.type(message.replace('\n', r'\n'))

在上面的代码中,如果我删除该.replace('\n', r'\n')部分,脚本的运行速度会明显变慢。似乎换行符(和其他不可打印字符)的存在会减慢执行速度。

此问题并不局限于 Python 或pynput库。我能够使用 重现此问题xlib,并且它似乎是Ubuntu 上libxdo(和xdotool) pyautogui、 和类似工具性能缓慢的根本原因。

有趣的是,这个问题在 Arch Linux 上不会发生。

我的问题是:有人能找出并解释为什么会发生这种情况吗?任何见解都将不胜感激。

相关内容