reduce relayout invocation's count