Скажите, замерял ли кто когда скорость работы функции чтения данных из XRecord
Данные железа: ЦП Core i5, 4X1,9 ГГц, ОЗУ 6Г Win 8.1 64bit
Софт: AutoCAd 2012
объем чтения из записи XRecord: 7Кбайт
время чтения: 8 мс
На первый взгляд быстро, но когда нужно прочесть 1000 таких записей получается, что пользователь должен ждать уже 8 сек.
Скорее должно помочь, если снизить объем записи Xrecord. 7К очень уж много я там храню лишней информации.
Или оператор Try.. Catch тормозов добавляет.
Вот код функции для анализа:
Public Shared Function acadnet_xrecord_Get_String(ByVal dictName As String, _
ByVal keyRec As String, _
ByVal doc As CAD_APS.Document, _
ByVal db As CAD_DBS.Database) As String
Dim retS As String = vbNullString
Using doc.LockDocument
Using tr As CAD_DBS.Transaction = db.TransactionManager.StartTransaction
Dim dicts As CAD_DBS.DBDictionary = tr.GetObject(db.NamedObjectsDictionaryId, CAD_DBS.OpenMode.ForRead, False)
If dicts.Contains(dictName) Then
Dim CurrDict As CAD_DBS.DBDictionary = tr.GetObject(dicts.GetAt(dictName), CAD_DBS.OpenMode.ForRead, False)
If CurrDict.Contains(keyRec) Then
Try
Dim xrec As CAD_DBS.Xrecord = tr.GetObject(CurrDict.GetAt(keyRec), CAD_DBS.OpenMode.ForRead, False)
retS = xrec.Data.AsArray(0).Value.ToString
Catch ex As System.Exception
End Try
End If
End If
End Using
End Using
Return retS
End Function