Ist es schneller, die Entpackung von Tuple
zu verarbeiten und einige Variablen zu verwenden, statt nur Tuple
zu verwenden, wie es ist.
Betrachten Sie dieses Beispiel:Tupel auspacken oder so wie es ist?
Tuple<int,int> test = new Tuple<int,int>;
int numberOne = int.Parse(Console.Readline());
int numberTwo = int.Parse(Console.Readline());
test.Item1 = numberOne;
test.Item2 = numberTwo;
for(int i = 0; i < 10; i++)
{
if(test.Item1 * i > test.Item2 * i)
{// do stuff}
else
{// do stuff}
}
VS
Tuple<int,int> test = new Tuple<int,int>;
int numberOne = int.Parse(Console.Readline());
int numberTwo = int.Parse(Console.Readline());
test.Item1 = numberOne;
test.Item2 = numberTwo;
for(int i = 0; i < 1000; i ++)
{
int tempItem1 = test.Item1;
int tempItem2 = test.Item2;
if(tempItem1 * i > tempItem2 * i)
{// do stuff}
else
{// do stuff}
}
Ich möchte wissen, auch die Tuple
mit 2 Variablen, wenn auspackt ist schneller als die Verwendung von item1 und item2. Bleibt das Ergebnis immer gleich, wenn wir mehr als 2 Variablen verwenden?
Vielen Dank im Voraus
Sich Gedanken über den Unterschied in der Leistung auf dieser Ebene ist völlig sinnlos. Schreiben Sie Code, der am einfachsten zu verstehen ist, wenn Sie darauf zurückkommen/ihn an die nächste Person weitergeben. Wenn Sie Leistungsprobleme haben, nehmen Sie Messungen vor und entscheiden Sie dann, wie Sie optimieren. Neunundneunzig Mal von hundert, wird es nicht an dem Ort sein, den Sie erwarten. Hören Sie auf, sich Sorgen zu machen, was "am schnellsten ist", und konzentrieren Sie sich stattdessen auf die Korrektheit und "Verständlichkeit" Ihres Codes. Du konzentrierst dich auf [Mikrooptimierung] (http://programmers.stackexchange.com/questions/99445/is-micro-optimization-important-when-coding) ... – spender
Aber das ist nicht einmal mein Code, den ich gerade geschrieben habe Ich habe mich gefragt, ob es wirklich wichtig ist – KOPEUE
IMO Tupel sind ein unfreundlicher Datentyp, der keine Bedeutung im Namen der Eigenschaft auffängt, so dass der Code klarer wird, indem eine lokale Variable mit einem guten Namen erstellt wird, die auf a zeigt Tupel-Eigenschaft (zum Beispiel 'var numberOfItems = someTuple.Item1;'). Es ist äußerst unwahrscheinlich, dass die Kosten für die zusätzliche lokale Variable Ihr Programm erheblich verlangsamen, es sei denn, es befindet sich in einem heißen Abschnitt des Codes, der millionenfach aufgerufen wird. Wenn das Programm langsam ausgeführt wird, verwenden Sie die Profilerstellung, um herauszufinden, wo die Kosten liegen. Ich wette, es wird nicht durch die Zuweisung von ein paar lokalen Variablen getragen. – spender