Frame pointer
Интересная статья про frame pointer — указатель на верхушку стека вызовов. Недавно как раз обсуждал с коллегами, надо ли или не надо его использовать (в итоге положились на то, что в gcc
по умолчанию он не добавляется), и нате.
Оказывается, наличие этого указателя довольно критично для многих профилировщиков. Занятно, что даже в java протекает. При этом какое-то влияние на производительность экономия одного регистра все-таки имеет, но оно меньше 1%, а если больше, то, скорее всего, вызвано проблемами с кэшем и расположением в памяти.
При этом в нормальных обстоятельствах указатель не нужен, а для профилирования есть другие подходы, которым он не нужен.
Комментарии