- A Step Toward Realism
- Overview
- New Architecture Code Examples
- The Usual Type of Client-Side Code
- A Couple of Tweaks that Help Performance
- Collapsed Objects
- Statuses in One Single Byte
- Object Vector
- NonSerialized()
- Using "Dumb" Collections
- Another Struggle with Guids
- Oops, Maintainability Must Be Lost!
- And a Few Tweaks Not Applied Yet
- A New Test Application
- Results of the Throughput Tests
- Conclusion
And a Few Tweaks Not Applied Yet
Of course, there are a lot more tweaks you can use. For example:
Use an obfuscator: It helps a bit regarding serialization size because the obfuscator shortens the length of type names, variable names, and so on.
The status-byte and the key-field can move to the object vector: That results in fewer variable names, which in turn reduces serialization size.
Wait with adding double objects to object vector until first access: And the expansion of the object vector would then typically not happen until at the client-side. Perhaps this should even be done on a property-by-property basis.
Custom serialization: As I said, I want to skip this one until I need it for other reasons.
NOTE
Worth mentioning is that the code is still pretty much untweaked, even after the changes above have been applied. Remember: I'm in the middle of the work of developing the new architecture, and I watch performance only periodically to see that I haven't created a huge performance problem.