Tuple
paketini açmayı ve Tuple
kullanarak sadece birkaç değişkeni kullanarak işlem yapmak daha hızlı mıdır?Açma Tuple veya olduğu gibi olsun?
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}
}
Ben de Tuple
2 ile değişkenleri unwrapping Öğe1 kullanarak daha hızlı ve olup olmadığını bilmek istiyorum item2:
Bu örneği ele alalım. Eğer 2'den fazla değişken kullanıyorsak sonuç hala aynı olacak mı?
Şimdiden teşekkürler
Bu seviyedeki performans farkından endişe etmek tamamen anlamsızdır. Geri döndüğünüzde/bir sonraki kişiye ilettiğinizde anlaması en kolay olan kodu yazın. Performans sorunlarınız olduğunda, ölçümleri alın ve nasıl optimize edeceğinize karar verin. Yüzde doksan dokuz kez, beklediğiniz yerde olmayacak. "En hızlı olan" hakkında endişelenmeyi bırakın ve bunun yerine kodunuzun doğruluğu ve "anlaşılabilirliği" konusuna odaklanın. [Mikro-optimizasyon] üzerine yoğunlaşıyorsunuz (http://programmers.stackexchange.com/questions/99445/is-micro-optimisation-important-when-coding) ... – spender
Ama yazdığım kodum bile değil. işte bu gerçekten önemli olduğunu merak ediyordum – KOPEUE
IMO Tuples özellik isminde herhangi bir anlamı yakalama düşmanca olmayan bir veri türü, bu yüzden bir noktaya iyi bir isim ile yerel bir değişken oluşturarak kodunuza netlik katacak Tuple özelliği (örneğin, "var numberOfItems = someTuple.Item1;'). Ekstra yerel değişkenin maliyetinin, milyonlarca kez çağrılan kodun sıcak bir bölümünde olmadığı sürece, programınızı önemli ölçüde yavaşlatması son derece olası değildir. Programınız yavaş çalıştığında, maliyetin nerede olduğunu öğrenmek için profil kullanın. Bir kaç yerel değişken atayarak bahse girmeyeceğine bahse girerim – spender