When parsing a large FIT file (2MG, 75.000 data messages), the memory consumption is about 90 MB. I have tried to remove FitParse._messages and the memory consumption has dropped to 13MB. (And a few percent faster.)
I think the FitParse._messages and the property FitParse.messages should be removed - caching is the task of the user code.
If you want to keep it, then there should be some parameter like cache_result (default False).