Очень простой вопрос:
У меня есть программа, выполняющая множество математических вычислений над целыми и длинными значениями.Чтобы уместиться в дополнительный бит, я сделал длинные long без знака, поскольку я имел дело только с положительными числами и теперь мог получить еще несколько значений.
Как ни странно, это дало мне прирост производительности на 15%, чтоЯ подтвердил, что просто делаю все длинное без знака.
Возможно ли это?Действительно ли математические операции быстрее с числами без знака?Я помню, что читал, что не будет никакой разницы, и компилятор автоматически выберет самый быстрый путь, будь то со знаком или без знака.Действительно ли это увеличение на 15% из-за того, что vars не подписан, или это может быть что-то еще затронуто в моем коде?
И, если это действительно из-за того, что vars не подписан, я должен стремиться сделать все (даже целые числа)) без знака, поскольку мне никогда не нужны отрицательные числа, и каждая секунда важна, если я могу ее сохранить.