什么是LicenseInteropHelper.getCurrentContextInfo,为什么它使用我的.net应用程序的这么多周期?

时间:2010-02-02 03:14:30

标签: .net profiling

我正致力于调整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的位置 - 我在我的解决方案中找不到对它的引用。

这个功能是什么,如果没有必要,我该如何摆脱它或限制它的使用时间?

1 个答案:

答案 0 :(得分:3)

我们在使用ANTS Performance Profiler调试轮询Web调用时遇到了一个非常类似的问题,除了我们的问题更严重(90%的执行时间都花在这里)。

经过一番调查,我们发现ADODB代码导致了对GetCurrentContextInfo的调用。因为它是我们代码中使用ADODB连接器的唯一位置,所以我们转移到了MySqlConnector / NET。这极大地改善了我们的通话性能。希望这会有所帮助。