Hi Gavin. Thank you for your report. Exception throwing is used for coroutines cancellation in Kotlin. Coroutines are widely used in Compose and their cancellation happens at #onForgotten calls for instance. So yes, the performance of throw/catch affects overall performance of Compose, we notice it analyzing execution profiles of compose applications. Though it is not the only reason of lags (
https://github.com/JetBrains/compose-jb/issues/2283#issuecomment-1350809036). Frame drops (that are considered by users as lags) often happen because of GC pauses that we also see on execution profiles. Kotlin native team is aware of the most of the above problems and is working on them now (objects allocations, gc pauses, lock mechanism (that is also used by coroutines)).