What are digest cycles in AngularJS, and how do they impact performance?

A digest cycle checks scope variables for changes to update the DOM. Overuse of $watch or unnecessary cycles degrade performance, especially with large datasets. Optimizing cycles with $applyAsync or $evalAsync in custom directives can minimize performance issues and improve responsiveness in AngularJS applications.