Python-> curses modülünü kullanarak, çok fazla çizim/yenileme deneyimi yaşadım. Aynı programı C++ 'da yazdım ve sorunum olmadı. Kodu: Program ekranda her hücre için rengini değiştirmek için bir kaçış dizisi gönderdiği içinPython Curses, birbirini izleyen farklı renklerde yavaş yavaş yenileme
#!/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)
Fakat neden C++ ile yazılmış aynı kod çok hızlı? Ve '█' karakterini değiştirsem bile, örneğin 'A' ile hala yavaştır. –
Python bir yorumlayıcıdır ve C++ uygulamasında bir derleyici uygulamasından daha fazla iş vardır. –
Gönderilen veri miktarının buradaki sorun olduğunu sanmıyorum çünkü söylediğim gibi sadece renkler değiştiğinde daha yavaştır. Yalnızca bir renk çifti kullanırsam, gönderilen veri miktarı aynıdır ancak süper hızlı çalışır. –