Когда sizeof (myPOD) слишком велик для передачи по значению на x64?

Я не ожидаю никакой разницы, когда дело касается структур размером до 8 байт, но как насчет больших типов POD? Становится ли передача по значению более дорогой в тот момент, когда размер типа превышает размер машинного слова, или есть что-то еще (например, размер строки кэша), которое может повлиять на производительность?

Меня в основном интересует x64, но не стесняйтесь включать некоторые числа для x86.

Уточнения:

  • Я, вероятно, слишком узко думаю, потому что не знаю всего, что играет в этом роль (регистры, соглашения о вызовах, оптимизация компилятора). Меня в основном интересует компилятор C ++ от Microsoft, и он использует только __fastcall.
  • Мне интересно, есть ли какие-либо общие рекомендации, когда дело доходит до передачи параметров, зная архитектуру, размер типа, размер кеша и т. Д. Что-то вроде: «Предпочитайте передавать тип по значению, если он меньше N байтов. " где N - это то, что может быть получено из того, что мы знаем.
6
задан Nikola Smiljanić 22 February 2012 в 13:19
поделиться