3

我正在将旧版 VB6 应用程序迁移到 .Net,但由于它是一个备受瞩目的关键业务应用程序,因此正在逐步完成。

为了提高性能,有一种方法在应用程序生命周期中会被多次击中,我想用 .Net (C#) 重写它,看看是否可以改进运行时。

有问题的方法操作 ADODB 记录集。由于这些记录集将通过 COM 互操作传入和传出 VB6,因此我应该注意或考虑任何性能问题吗?

4

1 回答 1

2

我没有对此做任何具体的事情,但根据我在 Interop 方面的经验,.NET 得到了很好的优化,通常每次对 Win API 或 COM 的互操作调用只会引入可以忽略不计的纳秒开销。ADO Recordset 将被视为与在非托管堆上创建的任何其他 COM 对象相同,并且在底层是它们处理的 IntPtr 地址。

本机 .NET 框架库及其垃圾收集器远远优于 VB 中可用的内容。我相信在 .NET 中重写一些旧的 VB 代码可能会给您带来更多或至少足以忽略互操作开销的性能提升。最好为自己配备一个分析器工具,并在逐个迁移实施时持续监控性能。

于 2010-02-22T10:40:34.997 回答