Все три варианта по сути просто прибавляют к числу num двойку. Но среди программистов ходят легенды что второй вариант работает быстрее, а третий ещё быстрее чем второй.
Ну вроде как второй вариант действительно быстрее, но есть нюанс: современные компиляторы делают много неявных оптимизаций, и первый вариант всё равно будет приведен ко второму.
Ну а 1 медленнее, потому что сначала идёт суммирование, потом присвоение. А во втором случае просто увеличение.
Но если речь о перегруженных операторах, то наверное компилятор не станет ничего оптимизировать. Но тогда скорость операций зависит от того, как была реализована перегрузка.
всегда так делаю в глубоких циклах
процессор любое сравнение делает через вычитание и сравнивание результата с нулём
ему не придётся выполнять лишних вычитаний, если сравнение изначально с нулём
Компилятор может оптимизировать далеко не любой цикл. А программисту, для которого плохо читабелен цикл, сравнивающий декрементированную переменную с нулём, стоит подумать о смене профессии.
One morning you wake up find out you have access to God’s developer console. What’s the first thing you do with this power?
Discussion
♦ 154 + W 479 & Share
^ BEST COMMENTS ▼
I like forks • 5h
hehe3301 • 7h
sudo rm -rf oceans/*/contents/
*.plástic
sudo rm -rf people/*/*.cáncer sudo rm -rf v
Vector Databases and the Future of AI-powered Search - Sam Partee,Science & Technology,Vector search,vector search at scale,machine learning for search,open source search,vector based ranking,In this talk you will learn about how vector based search works at scale with the open-soure database
Ну а 1 медленнее, потому что сначала идёт суммирование, потом присвоение. А во втором случае просто увеличение.
var num = 10;
while(num --> 0) {
//do ten times
}
процессор любое сравнение делает через вычитание и сравнивание результата с нулём
ему не придётся выполнять лишних вычитаний, если сравнение изначально с нулём