In SerializedViewKey, the current code uses a counter and the full viewId as key to retrieve or save the state into session.
But store the full viewId is not really necessary. The counter itself gives uniqueness inside the session, and the viewId is just a way to check if the state to restore is the right one. In other words, given the probability of found two valid viewIds in an application with the same hashCode is astronomical and the fact that there is a counter that identify in an unique way a view state session token, it is reasonable to store into the state only the hashCode, and when the view is restored compare the viewId hashCode with the stored one into the state.
This change will reduce the size required by SerializedViewKey.