Python诅咒,在不同的连续颜色上缓慢刷新
使用python->curses模块,我体验到了一个非常缓慢的过程 如果我经常更改字符串颜色,请绘制/刷新。 我用C++编写了同样的程序,没有问题。 代码:Python诅咒,在不同的连续颜色上缓慢刷新,python,macos,performance,refresh,curses,Python,Macos,Performance,Refresh,Curses,使用python->curses模块,我体验到了一个非常缓慢的过程 如果我经常更改字符串颜色,请绘制/刷新。 我用C++编写了同样的程序,没有问题。 代码: 它很慢,因为程序发送一个转义序列来更改屏幕上每个单元格的颜色 也就是说,不只是发送'█'(3字节UTF-8字符串),它还发送颜色信息。以可读的形式(使用),类似以下内容: \E[31m \E[40m\342\226\210 \E[33m \E[40m\342\226\210 \E[31m \E[40m\342\226\210 ... 因为
它很慢,因为程序发送一个转义序列来更改屏幕上每个单元格的颜色 也就是说,不只是发送
'█'代码>(3字节UTF-8字符串),它还发送颜色信息。以可读的形式(使用),类似以下内容:
\E[31m
\E[40m\342\226\210
\E[33m
\E[40m\342\226\210
\E[31m
\E[40m\342\226\210
...
因为curses同时为每个单元格写入前景色和背景色(因为少数终端无法独立完成)。转义序列为10个字节,数据为3个字节,使其速度慢了大约4倍。这是因为程序发送转义序列来更改屏幕上每个单元格的颜色
也就是说,不只是发送'█'代码>(3字节UTF-8字符串),它还发送颜色信息。以可读的形式(使用),类似以下内容:
\E[31m
\E[40m\342\226\210
\E[33m
\E[40m\342\226\210
\E[31m
\E[40m\342\226\210
...
因为curses同时为每个单元格写入前景色和背景色(因为少数终端无法独立完成)。这是转义序列的10字节,数据的3字节,使它慢了大约4倍。但是为什么C++中编写的代码非常快?即使我改变了█' 例如,“A”的字符仍然很慢。Python是一个解释器,并且比C++中的编译器应用程序要做的工作要多。我认为发送的数据量不是问题,因为正如我所说的,只有当颜色交替时才慢。如果我只使用一个颜色对,那么发送的数据量是相同的,但是它的工作速度非常快。如果你只使用一个颜色对,没有颜色的切换,没有转义序列。我有相同的问题,但是用C++编写的应用程序,有没有办法加快刷新多色屏幕?但是为什么用C++编写的代码是非常快的?即使我改变了█' 例如,“A”的字符仍然很慢。Python是一个解释器,并且比C++中的编译器应用程序要做的工作要多。我认为发送的数据量不是问题,因为正如我所说的,只有当颜色交替时才慢。如果我只使用一个颜色对,那么发送的数据量是相同的,但是它工作得非常快。如果你只使用一个颜色对,没有颜色转换,没有转义序列。我有相同的问题,但是用C++编写的应用程序,有没有办法加快刷新多色屏幕?