2017-04-10 4 views
0

Der Titel ist die Hauptfrage hier. Ich hatte etwas PyOpenGL Code, den ich auf meinem Computer laufen ließ, der etwas langsam lief. Mir wurde klar, dass ich PyOpenGL-accelerate nicht installiert hatte. Dies änderte nichts an der Geschwindigkeit, aber die meisten Tutorials mit den Python OpenGL-Bindungen legen nahe, dass PyOpenGL-accelerate installiert werden sollte.Was genau ist PyOpenGL-beschleunigen?

Was genau macht dieses Modul?

Antwort

2

Zuallererst beachten Sie, dass PyOpenGL-beschleunigen keine Silberkugel ist. Wenn Sie Ihre Anwendung bereits schlecht optimieren, würde Ihnen PyOpenGL-accelerate nicht so viel zusätzliche Leistung bringen.

Das gesagt. PyOpenGL-accelerate bestehen aus Cython-Beschleunigermodulen, die versuchen, verschiedene Aspekte von PyOpenGL 3.x zu beschleunigen. Wenn Sie also glBegin() und glEnd() verwenden, um mit zu zeichnen, dann werden Sie keine Leistung davon erhalten.

Also was ist Cython Beschleunigermodule?

Diese Module sind vollständig eigenständig und werden nur erstellt, um schneller zu laufen als der entsprechende reine Python-Code, der in CPython ausgeführt wird. Im Idealfall haben die Beschleunigermodule immer ein reines Python-Äquivalent, das als Fallback verwendet werden kann, wenn die beschleunigte Version auf einem bestimmten System nicht verfügbar ist. Die CPython-Standardbibliothek verwendet umfangreiche Beschleunigermodule.

Python – Binary Extensions

In mehr Begriffe des Laien. Cython ist sozusagen eine Mischung aus Python und C. Mit einem Ziel ist die Optimierung und Ausführungsgeschwindigkeit.

In Bezug auf PyOpenGL-beschleunigt bedeutet dies, dass die verschiedenen Hilfsklassen PyOpenGL bietet. Wird stattdessen in einer Weise implementiert, die mehr Leistung bietet.

0

Vom documentation:

Dieser Satz von C (Cython) Verlängerungen Beschleunigung der gemeinsamen Operationen für langsam Punkte in PyOpenGL 3.x enthält Bei Code, der große Arrays verwendet, beträgt die Beschleunigung im Vergleich zu unbeschleunigtem Code etwa 10%.

Sie den Code graben könnte, wenn Sie genau, welche Optimierungen definiert wissen wollen, aber OpenGL ist in der Regel überraschend grobe Optimierungen gebaut um für unterschiedliche Hardware zu berücksichtigen - ich nehme an, dass auch aus durch einen Dolmetscher zu laufen erstreckt .

+0

Wir antworteten genau zur selben Zeit, bis auf die Sekunde. Das ist ziemlich beeindruckend. – Vallentin