Üst düzey bir lambda fonksiyonum var ve bu lambda içinde birkaç tane iç içe geçmiş lambda fonksiyonu var.Yuvalama Lambda işlevleri - Performans etkileri
Lambdaları diğer lambdaların içine yerleştirmek iyi bir fikir midir? Herhangi bir performans etkisi var mı?
Örneğin;
auto Multiplier1 = []() -> int
{
auto Multiplier2 = [](int i) -> int
{
auto Multiplier3 = [](int i) -> int
{
return i * 2;
};
std::cout << "Calling another lambda 2\n";
return Multiplier3(i * 100);
};
int i = 10;
std::cout << "Calling another lambda 1\n";
int ret = Multiplier2(i);
return ret;
};
int ret = Multiplier1();
std::cout << ret << "\n";
Yukarıdaki örnekte Multiplier2 ve Multiplier3'ü ayrı işlevlere yeniden yapılandırabilirim. Buna kıyasla daha iyi bir yaklaşım mı?
Şu an üretimde olan bir kodu değiştiriyorum ve bu yüzden ayrı bir işlevde yeniden hesaba katıp katmamayı veya lambda işlevlerini kullanmayı başaramama konusunda bir ikilemde bulundum.
"* Herhangi bir performans etkisi var mı? *" Kapaksız kulağa takılan lambdalar için, kesinlikle değil. – ildjarn
Dürüst soru: Neden sahip olduğunuz ve zamanladığınız konserve örneği etrafında bir döngü sarmıyorsunuz. Sonra refaktöre ve zamana? @ Jar jar jar jar jar jar jar jar points points points points As As As As As As As As As As As As As As As As As As As As As As ild ild ild ild ild ild As ild – Hal
@Hal Haklısınız. En iyi şey zaman ve performans kontrol etmektir. –