2013-04-25 2 views
-1

Что такое инструкция, которая занимает больше времени между if() или переменной инициализацией?Проверка утверждения или переменной присваивания для производительности?

Будет ли более эффективным сначала проверить, имеет ли заданная переменная ненулевое значение и установить ее, только если она была ненулевой?

например: boolean!

if (boolean) 
    boolean = false; 

или непосредственно: boolean = false;

+0

Несомненно, что X + Y> X, если Y не равен нулю (или отрицательно)? – EJP

ответ

1

Скорее всего, это происходит быстрее, не проверять. Это зависит от типа устанавливаемого объекта (в данном случае булева, которая явно «проста в установке»). Преимущество в том, что сначала можно проверить только специальные объекты, которые имеют «простое сравнение» и «сложный набор».

И если это действительно легко проверить и трудно изменить, то функция «установить» должна проверить это сама.

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

+0

Спасибо за ответы! – VincentLamoute