Monitor System.Reflection.Assembly 动态加载的 dll



我不确定如何为这个问题命名,所以如果您认为标题可以改进,请随时编辑。

所以,我通常不会用 vb.net 编码,但这次作为学校的家庭作业,我必须这样做。它是关于使用 System.Reflection.Assembly 调用一组 6 个 dll。我设法使用以下代码做到这一点:

For Each dll As String In loadedDLLs
            Dim newAssembly As System.Reflection.Assembly =
                    System.Reflection.Assembly.LoadFrom(dll)
            For Each dat As System.Type In newAssembly.GetExportedTypes
                Dim x As Object = Activator.CreateInstance(dat)
                Dim args() As [Object] = {}
                dat.InvokeMember("init", System.Reflection.BindingFlags.InvokeMethod, Nothing, x, args)
            Next
        Next

在上面的代码中,dll 是 dll 文件的路径,我在OpenFileDialog"加载"的每个 dll 上执行"init"方法

我需要做的是将其添加到 DataGridView 中,并使用相关的系统使用静态值在每个 Timer.Tick 间隔更新 gird。现在我找到了一个非常有用的帖子,在代码的另一段中允许我监视.exe文件的执行,这里是链接:http://msdn.microsoft.com/en-us/library/vstudio/system.diagnostics.process.privatememorysize64(v=vs.110).aspx

谁能指出我监控 dll 性能的严格方向? 代码狙击或链接会很棒。

多谢!

我会执行以下操作,尽管可能有更好的方法:

创建一个简单的 exe,它将 dll 的路径作为参数。

在监视器应用中,将该 exe 作为新进程 (Diagnositc.Process) 调用,并将 dll 路径传入。

然后,您可以从进程对象中获取各种信息,例如内存使用情况。

我还会考虑记录过程的开始和结束时间以计算所花费的时间。

您可能遇到的主要问题是 init 方法可能会在读取内存使用情况之前完成,因此可以查看峰值内存使用属性。

相关内容

  • 没有找到相关文章

最新更新