想要提高C#.Net应用程序的性能。
在我的应用程序中,我使用第三方Interop/Dll来处理.doc文件。
这是一个简单的操作,将输入/输出文件路径传递给Interop dll…然后dll将从输入文件中执行文本。
为了提高性能,我尝试了以下方法:
- 执行2个线程以处理32个文件。(每个线程处理16个文件)
- 通过创建2个新的AppDomains来执行应用程序代码(每个AppDomain代码处理16个文件)
- 使用TPL(任务并行库)执行代码
但是所有选项都需要大约相同的时间(32秒)来处理32个文件。手动处理也需要同样的32秒来处理32个文件。
只尝试了一件事情...当我创建一个样本exe来处理16个文件作为输入和输出,并在文本框中给出参考路径时。
..我打开了2个exe实例进行处理。 1个exe有不同的16个输入文件和输出文件路径与输入文件相关 2个exe有不同的16个输入文件和输出文件路径与输入文件相关
当我点击两个exe的开始按钮时,它使用了100%的CPU并显着利用了两个内核,而且在16秒内完成了32个文件的处理。
我们可以提供这种明确的并行性来提高我的应用程序性能吗?