Yes - you can use a different serialization format. The built-in serialization format is rich, but it also has drawbacks - it is quite verbose compared to some other custom formats.
The format I'm most familiar with is Protocol Buffers , which is Google's efficient and portable binary format. However, it does require that you design the types you want to serialize differently. There are always pros and cons :)
There are other binary serialization formats, such as Thrift .
You might want to stick with the built-in serialization, but you should know that other options are available.
Before you go too far, you need to determine what you need and how much you really need to worry about performance anyway. You can spend a lot of time exploring options when what you have might be ok :)
source share