我正致力于调整Web服务的性能。我正在使用JetBrains的试用版来描述应用程序。当我导入文件时,15%的执行时间是GetCurrentContextInfo,这是签名:
Void System.ComponentModel.LicenseManager.LicenseInteropHelper.GetCurrentContextInfo(Int32 &, IntPtr &, RuntimeTypeHandle)
这些函数调用应该来自我的查询函数:
Public Function query(ByVal sql As String) As ADODB.Recordset
Try
Dim conn As ADODB.Connection
Dim rs As New ADODB.Recordset
conn = curConnection()
rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
Return rs
Catch ex As System.Runtime.InteropServices.COMException
handleDatabaseError(ex)
End Try
End Function
curConnection()函数是一个连接池。我无法弄清楚GetCurrentContextInfo的位置 - 我在我的解决方案中找不到对它的引用。
这个功能是什么,如果没有必要,我该如何摆脱它或限制它的使用时间?
答案 0 :(得分:3)
我们在使用ANTS Performance Profiler调试轮询Web调用时遇到了一个非常类似的问题,除了我们的问题更严重(90%的执行时间都花在这里)。
经过一番调查,我们发现ADODB代码导致了对GetCurrentContextInfo的调用。因为它是我们代码中使用ADODB连接器的唯一位置,所以我们转移到了MySqlConnector / NET。这极大地改善了我们的通话性能。希望这会有所帮助。