我不确定如何为这个问题命名,所以如果您认为标题可以改进,请随时编辑。
所以,我通常不会用 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 方法可能会在读取内存使用情况之前完成,因此可以查看峰值内存使用属性。