【发布时间】:2010-03-22 08:44:32
【问题描述】:
想要提高 C#.Net 应用程序的性能..
在我的应用程序中,我使用第三方互操作/Dll 来处理 .doc 文件。
这是一个简单的操作, 哪个将输入/输出文件路径传递给 Interop dll ...& dll 将执行文本表单输入文件。
为了提高我尝试过的性能,
- 执行2个therad处理32个文件。(每个Thread处理16个文件)
- 通过新建2个AppDomain来执行应用代码(每个AppDomain Code处理16个文件)
- 使用 TPL(任务并行库)执行代码
但所有选项都需要大约相同的时间(32 秒)来处理 32 个文件。手动处理同样需要 32 秒来处理 32 个文件。
刚刚尝试了一件事......当我创建示例 exe 来处理 16 个文件作为输入和输出以供 TextBox 中给出的参考路径时。
..我打开 2 个 exe 实例进行处理。 1 exe 具有不同的 16 个输入文件和输出使用输入文件路径创建 2 exe 有不同的 16 个输入文件和输出使用输入文件路径创建
当我点击两个 exe 的开始按钮时 ..它使用 100% cpu 并显着利用两个核心并在 16 秒内完成 32 个文件的进程。
我们能否提供这种明确的实践来提高我的应用程序性能?
【问题讨论】:
-
您是否尝试过详细分析应用程序?如果 I/O 是缓慢的主要来源,那么您无法通过并行来解决它。
标签: c# performance optimization