[Python] Ausführungszeit, wenn eine Funktion in einen Wörterbuchwert eingegeben wird

Python ohne die Switch-Syntax (Select) kann stattdessen ein Wörterbuch verwenden. Ein Hinweis zur Ausführungszeit.

Fazit

Wenn die Funktionsargumente unterschiedlich sind

Die Methode ist denkbar.

Beispiel

Stellen Sie sich den Fall vor, in dem die folgenden beiden Funktionen separat ausgeführt werden. (Ich möchte die Ausführungszeit wissen, also schreibe ich sie so, dass sie langsam ist.)

def myfunc1():
    nx, ny = 50, 40
    arr = np.empty( ( nx, ny ) )
    for iy in range( ny ):
        for ix in range( nx ):
            arr[ix,iy] = ix * ix + iy * iy
    return arr


def myfunc2():
    nx, ny = 50, 40
    arr = np.empty( ( nx, ny ) )
    for iy in range( ny ):
        for ix in range( nx ):
            arr[ix,iy] = 1
    return arr

Danach haben wir die Zeit gemessen, die für die folgenden drei Ausführungsmethoden erforderlich ist (unter Verwendung von %% timeit von JupyterLab, unten ist nur myfunc1).

#Funktion direkt ausführen
myfunc1()

# { key: func }Aus dem Typwörterbuch ausführen
key = 1
dict_func = { 1: myfunc1, 2: myfunc2 }
dict_func[ key ]()

# { key: func() }Aus dem Typwörterbuch ausführen
dict_return = { 1: myfunc1(), 2: myfunc2() }
dict_return[ key ]

Das Ergebnis war wie folgt. Sie können sehen, dass der Typ {key: func ()} eine Zeit in der Nähe der Zeit benötigt, in der beide Funktionen ausgeführt werden.

#Direkte Ausführung
1: 488 µs ± 26.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
2: 286 µs ± 925  ns per loop (mean ± std. dev. of 7 runs, 1000 loops each)

# { key: func }Schimmel
1: 461 µs ± 332  ns per loop (mean ± std. dev. of 7 runs, 1000 loops each)
2: 298 µs ± 22.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

# { key: func() }Schimmel
1: 763 µs ± 3.96 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
2: 771 µs ± 31.6 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

Recommended Posts

[Python] Ausführungszeit, wenn eine Funktion in einen Wörterbuchwert eingegeben wird
Messen Sie die Ausführungszeit von Funktionen in Python
Vorsichtsmaßnahmen beim Beizen einer Funktion in Python
Hash in Perl ist ein Wörterbuch in Python
Funktionsausführungszeit (Python)
Erstellen Sie ein Wörterbuch in Python
[Python] Verwalten Sie Funktionen, indem Sie sie in ein Wörterbuch einfügen (Befehlstabelle, Funktionstabelle, Funktionszeiger).
[Python] Was ist eine Zip-Funktion?
Beim Schreiben eines Programms in Python
Dies ist schneller zu verwenden, wenn Anweisung oder Wörterbuchtyp beim Konvertieren einer Zeichenfolge (a-> b) in Python
Wenn sich eine Zeichenfolge einer bestimmten Reihe im Schlüssel des Wörterbuchs befindet, wird die Zeichenfolge in den Wert des Wörterbuchs konvertiert.
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
[Python3] Definition eines Dekorators, der die Ausführungszeit einer Funktion misst
Ein Programm, das bestimmt, ob eine in Python eingegebene Zahl eine Primzahl ist
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Wenn im Python-Wörterbuch auf einen nicht vorhandenen Schlüssel zugegriffen wird, initialisieren Sie ihn mit einem beliebigen Wert
Benachrichtigen Sie mit Notification Center, wenn die Ausführungsumgebung in Python macOS ist
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden
Zeichnen Sie in Python ein Diagramm einer quadratischen Funktion
Holen Sie sich den Aufrufer einer Funktion in Python
Eine clevere Möglichkeit zur Zeitverarbeitung mit Python
Finden Sie den Bruchteil des in Python eingegebenen Werts heraus
Python Hinweis: Wenn Sie einer Zeichenfolge einen Wert zuweisen
Gibt es keinen Standardwert im Wörterbuch?
Das Ausgabe-Timing ist falsch, wenn die Standardausgabe (Fehlerausgabe) in eine Datei in Python konvertiert wird
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
Dies ist ein Beispiel für eine Funktionsanwendung im Datenrahmen.
Empfangen Sie Wörterbuchdaten von Python-Programmen mit AppleScript
So speichern Sie eine Python-Funktion im Wert eines Wörterbuchs (dict) und rufen die Funktion gemäß dem Schlüssel auf
Ein Hinweis beim Überprüfen, ob der angegebene Schlüssel im definierten Wörterbuch mit Python vorhanden ist
So testen Sie eine Funktion, die die aktuelle Zeit enthält, mit Freezegun in Python
Einbetten in datetime, wenn nur die Zeit bekannt ist
Beachten Sie beim Initialisieren einer Liste in Python
Was ist in dieser Variablen (wenn das Python-Skript ausgeführt wird)?
Ausführungszeit für Python ausgeben
Timefloor-Funktion (Python)
Verwenden Sie communic (), wenn Sie eine Ausgabe in einem Python-Unterprozess empfangen
Erstellen einer Liste, wenn die Nomenklatur für einen bestimmten Zeitraum gültig ist
[Python] Stellen Sie sicher, dass die empfangene Funktion eine benutzerdefinierte Funktion ist
Wenn eine lokale Variable mit demselben Namen wie die globale Variable in der Funktion definiert ist
Was bedeutet das letzte () in einer Funktion in Python?
[C / C ++] Übergeben Sie den in C / C ++ berechneten Wert an eine Python-Funktion, um den Prozess auszuführen, und verwenden Sie diesen Wert in C / C ++.
Der Wert von meta beim Angeben einer Funktion ohne Rückgabewert mit Dask dataframe gilt
[Kleine Geschichte] Eine sorgfältige Maßnahme, wenn Sie vor dem Import in Python eine Funktion ausführen müssen
Ruft den Wert eines bestimmten Schlüssels bis zum angegebenen Index der Wörterbuchliste in Python ab
Slack-Benachrichtigung, wenn ein bestimmtes Wort auf Twitter mit Heroku mit Python gemurmelt wird
Eine Funktion, die iterable in Python in N Teile unterteilt
Ein Memo, wenn mit Python + OpenCV schnell ein Gesicht erkannt wird
Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python
Das Graustufenbild wird in OpenCV / Python als Farbbild angezeigt
So geben Sie char * in einer Rückruffunktion mit ctypes in Python zurück
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
Ein Memo, dass ich eine Grundfunktion in Python mit Wiederholung geschrieben habe
Wenn in python3 manage.py makemigrations "Keine Änderungen erkannt" angezeigt wird
Versuchen Sie, eine in Python geschriebene Funktion mit Fn Project auszuführen
Machen Sie einen Screenshot in Python
Memo zur Messung der Python-Ausführungszeit
Verwenden Sie die Rückruffunktion in Python