schrieb ich ein Python-Code wie folgt (es wird Tabelle unsigned Werte Tabelle von Bytes konvertieren):Python. Wie mache ich meinen Code schneller?
def foo(in_value, index)
TabOut[index*2] = in_value%255
TabOut[index*2+1] = in_value//255
for i in range(0,1024):
foo(tabIn[i],i)
ich diese Funktion 200-mal pro Sekunde laufen müssen. Wie man es optimiert?
[ 'divmod()'] (https://docs.python.org/3.6/library/functions.html#divmod) könnte etwas helfen. Aber ich habe das Gefühl, dass die Grundlagen fehlerhaft sind. Zuerst sehe ich nicht, warum Sie alle 1024 Berechnungen auf einmal berechnen müssen, und wenn Sie das aus irgendeinem Grund getan haben, sehe ich nicht, warum Sie das mehr als einmal durchgehen müssen (warum nicht zwischenspeichern) ?), geschweige denn 200x/sec. Und selbst wenn Sie mich davon überzeugen könnten, dass * das * notwendig war, scheint die Tabelle "nach oben" durch Multiplizieren und Hinzufügen anstatt Teilen und Subtrahieren schneller zu sein. – jedwards
schade es muss 255 nicht 256 sein ... dividiert durch 256 wäre viel schneller. Es gibt einen möglichen Trick, um 256 zu teilen, dann multiplizieren Sie mit (1 + 1/255), aber mit moderner CPU bezweifle ich, dass Sie einen Unterschied messen würden. –
Eigentlich bin ich nicht sicher, warum es '% 255' ist. Warum willst du nicht den Wert 255 verwenden? Wenn es einen bestimmten Grund gibt, der ein nützlicher Kontext sein könnte. –