tldr:
As far as I see it there is no difference depending memory usage, only if you don't use all views of the layout. Both cache the views, however andoid kotlin gets on demand while databinding initializes all. Depending performance, kotlin extensions is slightly(I would say in most cases not recognizable) faster than databinding during fragment/activity creation.
Documentation Kotlin Android Extensions:
Adds a hidden caching function and a field inside each Kotlin
Activity. The method is pretty small so it doesn't increase the size
of APK much. Replaces each synthetic property call with a function
call.
How this works is that when invoking a synthetic property, where the
receiver is a Kotlin Activity/Fragment class that is in module
sources, the caching function is invoked. For instance, given
class MyActivity : Activity() fun MyActivity.a() {
this.textView.setText(“”)
}
a hidden caching function is generated inside MyActivity, so we can
use the caching mechanism.
However in the following case:
fun Activity.b() {
this.textView.setText(“”)
}
We wouldn't know if this function would be invoked on only Activities
from our sources or on plain Java Activities also. As such, we don’t
use caching there, even if MyActivity instance from the previous
example is the receiver.
Reason: Kotlin uses synthetic properties and those are called on demand using caching function(Hence slight fast Activity/Fragment loading) while Databinding binds all views at once (that consumes slight more time).