StrToUtf8,Utf8 TO Unicode STR,WHICH IS THE Fast WAY ?

Code:
Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Declare Function WideCharToMultiByteNstr Lib "kernel32" Alias "WideCharToMultiByte" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByRef lpMultiByteStr As Any, ByVal cchMultiByte As Long, ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As Long) As Long
Private Const CP_UTF8          As Long = 65001
Private Declare Function lstrlenA Lib "kernel32" (ByVal lpString As Long) As Long
Sub UnicodeToUTF8Byte(sData As String, bvData() As Byte)
    Dim lSize  As Long, lRet As Long, Len1 As Long
    Len1 = Len(sData)
    If Len1 > 0 Then
        lSize = Len1 * 4
        ReDim bvData(lSize)
        lRet = WideCharToMultiByteNstr(CP_UTF8, 0, StrPtr(sData), _
           Len1, bvData(0), lSize + 1, vbNullString, 0)
   End If
End Sub

Public Function Utf8PtrToUnicode(lPtr As Long) As String 'good,快44%
'快26.6%-40%
    Dim lngUtf8Size As Long, lngResult  As Long
    
    lngUtf8Size = lstrlenA(lPtr)
    Utf8PtrToUnicode = SysAllocStringLen(ByVal 0&, lngUtf8Size)  '47.65%
    lngResult = MultiByteToWideChar(CP_UTF8, 0, lPtr, lngUtf8Size _
    , StrPtr(Utf8PtrToUnicode), lngUtf8Size)
    
    Utf8PtrToUnicode = Left$(Utf8PtrToUnicode, lngResult)
End Function
StrToJsonObject+ObjectToSTR:

Json1 ,Time(ms):163.7237
Json2 ,Time(ms):156.835
Json3 ,Time(ms):1174.7255
vbjson ,Time(ms):6976.9199
JsonConverter,Time(ms):5562.5334
cDataJSON ,Time(ms):1389.274
JsonBag ,Time(ms):2400.9234
cConstructor ,Time(ms):87.69
mdJson ,Time(ms):428.9307
cDataJSON2 ,Time(ms):856.9108
V8JS ,Time(ms):59.4316