Depends on your point of view and use, but in general, a session is cheaper throughout.
For the client, the session is almost free. It has to deal with keeping up with the session cookie (or session id using the URL if you set up cookieless sessions). Viewstate pops all the data to the client in the text of the page source.
, . viewstate . ( ), . , , viewstate . , , , ... , , .