Я считаю, что FastMM чрезвычайно надежен в этом отношении.
Если вы работаете в режиме выпуска, у вас не будет проблем с вызовом методов для освобожденных объектов в 99,9% случаев. 0,1% времени всегда будет происходить только на вашем самом ценном клиентском компьютере!
Итак, я бы поспорил, что это проблема. На самом деле это довольно легко отследить, потому что FastMM предоставляет вам все стеки вызовов, которые точно показывают, как это произошло. Вам просто нужно тщательно продумать детали.
Теперь вы можете спросить, как я могу вызвать метод для объекта, который был освобожден? Хорошо, когда вы освобождаете объект, вы возвращаете память диспетчеру памяти. Но диспетчер памяти обычно удерживает эту память и ждет подходящего момента для ее повторного использования. Важно, что он не сразу возвращает его в систему, потому что это дорого (это занимает значительное время).
Это то, что делает диспетчер памяти быстрым, но это также приводит к ошибкам, таким как вызов методов для маскируемых свободных объектов. Если память была возвращена в систему, то такое действие приведет к реальному нарушению доступа. Это то, что я имею в виду, говоря большую часть времени, когда диспетчер памяти находится в режиме выпуска, такой ошибки не будет.
Это одна из лучших функций FastMM, на мой взгляд, и соблюдение этого предупреждения избавит вас от боли в будущем. Попытка отследить такую проблему на поле чрезвычайно трудна. Исправить это с помощью информации, предоставленной FastMM, обычно просто.