Бабушкины сказки
Вы когда-нибудь пробовали описать цикл так, как показано на примере справа? Вы скажете, что это безумие, однако вот какой интересный факт хранит в себе этот фрагмент кода.
Казалось бы, меньше строк кода - быстрее и эффективнее он работает, однако тесты на Java и Microsoft Visual Basic показали, что второй фрагмент минимум на 60% быстрее первого.
#tips #cycles
Вы когда-нибудь пробовали описать цикл так, как показано на примере справа? Вы скажете, что это безумие, однако вот какой интересный факт хранит в себе этот фрагмент кода.
Казалось бы, меньше строк кода - быстрее и эффективнее он работает, однако тесты на Java и Microsoft Visual Basic показали, что второй фрагмент минимум на 60% быстрее первого.
#tips #cycles
Объединение циклов
Если два цикла работают с одним набором элементов, можно выполнить их объединение (jamming). Выгода здесь объясняется устранением затрат, связанных с выполнением дополнительного цикла.
Объединение циклов обычно требует, чтобы условия циклов были одинаковы. В нашем примере оба цикла выполняются от 0 до employeeCount - 1, поэтому мы можем их объединить.
Для случая employeeCount = 100 экономия времени составляет 28%(C++), 32%(PHP), 4%(Visual Basic). Объединить циклы иногда трудно. Будьте внимательны: прежде чем объединять циклы, убедитесь, что это не нарушит работу остальных частей кода.
#tips #cycles
Если два цикла работают с одним набором элементов, можно выполнить их объединение (jamming). Выгода здесь объясняется устранением затрат, связанных с выполнением дополнительного цикла.
Объединение циклов обычно требует, чтобы условия циклов были одинаковы. В нашем примере оба цикла выполняются от 0 до employeeCount - 1, поэтому мы можем их объединить.
Для случая employeeCount = 100 экономия времени составляет 28%(C++), 32%(PHP), 4%(Visual Basic). Объединить циклы иногда трудно. Будьте внимательны: прежде чем объединять циклы, убедитесь, что это не нарушит работу остальных частей кода.
#tips #cycles
Он зависимый, у него крыша едет
Использование значения индекса цикла после его завершения — дурной тон. Значения этих индексов часто непредсказуемы для других разработчиков.
Второй фрагмент содержит дополнительную переменную, однако, согласитесь, он не зависит от последнего значения индекса, не содержит дополнительных проверок, но читается легко и непринужденно.
#tips #cycles
Использование значения индекса цикла после его завершения — дурной тон. Значения этих индексов часто непредсказуемы для других разработчиков.
Второй фрагмент содержит дополнительную переменную, однако, согласитесь, он не зависит от последнего значения индекса, не содержит дополнительных проверок, но читается легко и непринужденно.
#tips #cycles
Бабушкины сказки
Вы когда-нибудь пробовали описать цикл так, как показано на примере справа? Вы скажете, что это безумие, однако вот какой интересный факт хранит в себе этот фрагмент кода.
Казалось бы, меньше строк кода - быстрее и эффективнее он работает, однако тесты на Java и Microsoft Visual Basic показали, что второй фрагмент минимум на 60% быстрее первого.
#tips #cycles
Вы когда-нибудь пробовали описать цикл так, как показано на примере справа? Вы скажете, что это безумие, однако вот какой интересный факт хранит в себе этот фрагмент кода.
Казалось бы, меньше строк кода - быстрее и эффективнее он работает, однако тесты на Java и Microsoft Visual Basic показали, что второй фрагмент минимум на 60% быстрее первого.
#tips #cycles