My best go-to's are to comment everything new and then uncomment it piece by piece so you know what works well, and then just log everything and track the log to see what is being logged during a period of lag/freezing.
You could be calling something an unreal amount of times and not know it, creating an object over and over, not caching info efficiently, or not creating optimal methods/loops in general.
Do you have multiple threads running, external API calls, web interfacing? Address things like that.