#java #primitive #operations
#java #примитив #операции
Вопрос:
Допустим, у меня есть вызываемая переменная, мне было интересно, сколько примитивных операций содержится в инструкции int
count
:
count ;
Будет ли это 3? Потому что, если вы запишете это в другой форме, например:
count = count 1;
Он имеет 1 чтение, 1 операцию и 1 запись. Таким образом, это означало бы, что оператор count
считается 3 примитивными операциями, верно?
Комментарии:
1. После того, как код был оптимизирован для машинного кода, это может быть всего одна инструкция
Ответ №1:
Да, это можно рассматривать как 3 операции. Это означает, что это постоянное число операций, поэтому для обозначения Big O это то же самое, как если бы было только 1 операция или 10, при условии, что оно постоянное.
Ответ №2:
На большинстве процессоров (или виртуальных машин, поскольку вы отметили свой вопрос тегом «java») существует специальная инструкция для увеличения значения на некоторую небольшую величину.
т.е. см. https://en.wikipedia.org/wiki/Java_bytecode_instruction_listings — iinc
Поэтому я бы посчитал простое приращение как 1 примитивную операцию (хотя внутренне оно все равно выполняется как чтение-приращение-запись).