Mit Python-> Curses-Modul, ich erlebe eine sehr langsame zeichnen/aktualisieren, wenn ich die Zeichenfolge Farbattribut viel chache. Ich schrieb das gleiche Programm in C++ und hatte kein Problem. Code:Python Curses, langsame Aktualisierung in verschiedenen aufeinander folgenden Farben
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import curses
import locale
# Inint global console config
locale.setlocale(locale.LC_ALL, '')
def main(stdscr):
curses.start_color()
curses.use_default_colors()
curses.init_pair(1, curses.COLOR_YELLOW, 0)
curses.init_pair(2, curses.COLOR_RED, 0)
max_rows, max_cols = stdscr.getmaxyx()
max_cont = max_rows * max_cols
try:
for i in range(1, max_cont):
stdscr.addstr('█', curses.color_pair(i % 2 + 1))
except curses.ERR:
pass
stdscr.refresh()
stdscr.getch()
curses.wrapper(main)
Aber warum der gleiche Code in C++ geschrieben ist sehr schnell? Und selbst wenn ich den "█" -Charakter mit zum Beispiel "A" ändere, ist es immer noch langsam. –
Python ist ein Interpreter und hat mehr zu tun als eine Compiler-Anwendung in C++. –
Ich denke nicht, dass die Menge der Daten, die gesendet wird, hier das Problem ist, denn wie gesagt ist langsamer nur, wenn die Farben wechseln. Wenn ich nur ein Farbpaar verwende, ist die Menge der gesendeten Daten gleich, aber es funktioniert super schnell. –