Size: a a a

2021 February 02

D

Danya in pro.net
А вы померили перфоманс и проблема оказалась в этом месте?
источник

KF

Kirill Fimchenko in pro.net
Egor Sidorenko
вдруг еще что есть
какая разница, перебор он и в африке перебор O(n)
источник

ES

Egor Sidorenko in pro.net
Kirill Fimchenko
какая разница, перебор он и в африке перебор O(n)
с селектом + tolist два перебора
источник

ES

Egor Sidorenko in pro.net
или я путаю что-то?
источник

D

Danya in pro.net
Egor Sidorenko
с селектом + tolist два перебора
Это все равно O(n)
источник

KF

Kirill Fimchenko in pro.net
микрооптимизации внутри не должны волновать простых смертных. нам дали декларативный select, а большего и не надо
источник

[

[BRM]White Rabbit in pro.net
А шарпы же не разворачивают хвостовую рекурсию?
источник

VK

Viacheslav Koryagin in pro.net
[BRM]White Rabbit
А шарпы же не разворачивают хвостовую рекурсию?
Смотря какие)
источник

[

[BRM]White Rabbit in pro.net
Да хотя бы банальный фиббоначи(кто решает фиббоначи через рекурсию, должен гореть в аду)
источник

[

[BRM]White Rabbit in pro.net
f(a)
if a == 1 ret 1
if a == 0 ret 0
ret f(a-1) + f(a-2)
источник

KF

Kirill Fimchenko in pro.net
Egor Sidorenko
вдруг еще что есть
вспомнил сик мув
for (int i = 0; i < collection.Length; i = i + 5){
    result.Add(collection[i + 4])
    result.Add(collection[i])
    result.Add(collection[i + 1])
    result.Add(collection[i + 2])
    result.Add(collection[i + 3])
}


что-то в таком духе. знающие конечно засмеют и скажут что оно само так сделается, возможно. но если ты эксперементируешь, то можно попробовать
источник

[

[BRM]White Rabbit in pro.net
[BRM]White Rabbit
f(a)
if a == 1 ret 1
if a == 0 ret 0
ret f(a-1) + f(a-2)
Вот псевдокод
источник

VK

Viacheslav Koryagin in pro.net
[BRM]White Rabbit
Да хотя бы банальный фиббоначи(кто решает фиббоначи через рекурсию, должен гореть в аду)
Возможно, жид развернёт. А f# точно развернёт
источник

ES

Egor Sidorenko in pro.net
Kirill Fimchenko
вспомнил сик мув
for (int i = 0; i < collection.Length; i = i + 5){
    result.Add(collection[i + 4])
    result.Add(collection[i])
    result.Add(collection[i + 1])
    result.Add(collection[i + 2])
    result.Add(collection[i + 3])
}


что-то в таком духе. знающие конечно засмеют и скажут что оно само так сделается, возможно. но если ты эксперементируешь, то можно попробовать
хм, годится, спасибо, на большом количестве элементов думаю наверное сделать Parallel.Foreach, вдруг лучше будет, хотя там оверкода овердохера
источник

E

EgorBo in pro.net
[BRM]White Rabbit
Да хотя бы банальный фиббоначи(кто решает фиббоначи через рекурсию, должен гореть в аду)
джит умеет разворачивать, какой-нибудь факториал через рекурсию точно развернет, что-то сложнее - хз
не очень полезная оптимизация в реальном мире
источник

E

EgorBo in pro.net
это в эфшарпе там рекурсия рекурсией погоняет
источник

E

EgorBo in pro.net
там без этого быстро придет SO
источник

E

EgorBo in pro.net
спроси любого эфшорпера когда он писал последний раз ссаный фибоначчи)
источник

[

[BRM]White Rabbit in pro.net
Ни разу не писал
источник

A

Aloraman in pro.net
Есть слабая надежда, что человек спрашивает как ICollection<TChild> ковариантно реинтерпретировать в ICollection<TBase>
Но ежели речь идет о произвольной трансформации, то просить сделать быстрее чем O(N) - это уже Эребор
источник