ByteCount[expr] gives the number of bytes used internally by Mathematica to store expr.
ByteCount does not take account of any sharing of subexpressions. The results it gives assume that every part of the expression is stored separately. ByteCount will therefore often give an overestimate of the amount of memory currently needed to store a particular expression. When you manipulate the expression, however, subexpressions will often stop being shared, and the amount of memory needed will be close to the value returned by ByteCount.
See Section 2.14.4.
See also: LeafCount, MemoryInUse, MaxMemoryUsed, Length, StringLength, Depth.
New in Version 1.