Load data to MTLTexture costs lots of time

I got a strange phenomenon. What I want to do is vary simple, just create a texture and upload some data to that texture. But I found out that uploading data with replace(region:mipmapLevel:withBytes:bytesPerRow🙂 costs lots of time, more than 10ms for a 1080p image on my iPhoneX.