[Python] Beschleunigung der Verarbeitung mit Cache-Tools

Überblick

--Cachetools ist eine Sammlungsbibliothek, die die Hochgeschwindigkeitsverarbeitung (Memoization) mithilfe des Cache zusammenfasst.

Ergebnis

――Wie in den folgenden beiden Vergleichsbildern gezeigt, ist es möglich, die schwere Verarbeitung mit einer geringen Menge an Beschreibung zu beschleunigen.

image.png

image.png

Umgebung

Installation

--Installieren Sie die Cachetools-Bibliothek mit dem folgenden Befehl.

pip install cachetools

Beschreibungsbeispiel

** * Da sich dieser Inhalt mit der Gliederung, dem Ergebnisbild und der grundlegenden Beschreibung befasst, finden Sie weitere Informationen unter Dokument. ** ** **

Basic

#Bibliothek laden
from cachetools import cached

#Cache-Aktivierung
@cached(cache ={})
def fibonacci(n):
  if n <= 2:
    return 1
  else:
    return fibonacci(n - 2) + fibonacci(n - 1)

print(fibonacci(30))

Jede Option

Name Inhalt
TTLCache Geben Sie die Lebensdauer des Caches an.
Kein Zugriff auf etwas, das die Lebensdauer überschreitet.
Entsorgen Sie zuerst die am wenigsten verwendeten Gegenstände.
LFUCache Mindesthäufigkeit. Messen Sie die Häufigkeit der Artikelerfassung und verwerfen Sie diejenige, die am häufigsten nicht verwendet wird
LRUCache Maximale unbenutzte Frequenz. Vom am wenigsten verwendeten wegwerfen
RRCache zufällig. Wähle zufällig Gegenstände aus und verwerfe sie von dort
#Bibliothek laden
from cachetools import cached, LFUCache, TTLCache, RRCache

@cached(cache=LFUCache(maxsize=10))  #Maximale Anzahl von Beständen
def get_all_item:
  #wird bearbeitet

@cached(cache=TTLCache(maxsize=10, ttl=300))  #Maximale Retention und Lebensdauer
def get_user_item:
  #wird bearbeitet

@cached(cache=RRCache(maxsize=10, choice=min))  #Alternative Funktion, die die maximale Anzahl von Beständen und jedem Element zurückgibt
def get_random:
  #wird bearbeitet. Zwischenspeicher.Funktion nach Wahl angegeben(min)Kann angerufen werden.

Referenz

Recommended Posts

[Python] Beschleunigung der Verarbeitung mit Cache-Tools
In Bezug auf die Beschleunigung von Python (Hinweis)
Verwenden des Python-Modus in der Verarbeitung
Periodische Ausführungsverarbeitung bei Verwendung von tkinter [Python3]
[Python] Matrix-Multiplikationsverarbeitungszeit mit NumPy
Einrichten der Basisauthentifizierung mit Python @Lambda
[Python] Verschiedene Datenverarbeitung mit Numpy-Array
Einrichten der Digest-Authentifizierung mit Python @Lambda
Python-Bildverarbeitung
Beschleunigung der numerischen Berechnung mit NumPy / SciPy: Anwendung 2
Starten Sie Python
Python-Dateiverarbeitung
[Competition Pro] Beschleunigung der DP mithilfe der kumulierten Summe
Beschleunigung der numerischen Berechnung mit NumPy / SciPy: Anwendung 1
Scraping mit Python
So richten Sie eine Python-Umgebung mit pyenv ein
Verarbeiten Sie CSV-Daten mit Python (Zählverarbeitung mit Pandas)
Hinweise zur Beschleunigung des Python-Codes mit Numba
Laden / Anzeigen und Beschleunigen von GIF mit Python [OpenCV]
Python verteilte Verarbeitung Spartan
Bearbeiten Sie Redmine mit Python Redmine
Dateiverarbeitung in Python
Python: Verarbeitung natürlicher Sprache
Kommunikationsverarbeitung durch Python
Fibonacci-Sequenz mit Python
Multithread-Verarbeitung in Python
Wörterbuchverarbeitung mit items ()
Erste Python-Bildverarbeitung
Verschiedene Python-Visualisierungstools
Datenbereinigung mit Python
Textverarbeitung mit Python
Verarbeitung in Python beenden
Refactoring-Tools, die mit Python verwendet werden können
Verwenden von Python # externen Paketen
WiringPi-SPI-Kommunikation mit Python
Altersberechnung mit Python
Bildverarbeitung mit Python
Suchen Sie Twitter mit Python
Namensidentifikation mit Python
Hinweise zur Verwendung von Python-Unterprozessen
Versuchen Sie es mit Tweepy [Python2.7]
Abbildung zur Verarbeitung von Python-Zeichenfolgen
Verschiedene Verarbeitung von Python
Beschleunigung der numerischen Berechnung mit NumPy / SciPy: Aufnehmen gefallener Ohren
Asynchrone Verarbeitung mit LINE BOT: RQ (Redis Queue) in Python