繁体   English   中英

使用一个应用程序的多个实例来提高性能

[英]Performance Improvement using multiple instances of an application

我有一个性能敏感的.net应用程序。

它能够执行多达32个线程的并行线程。 我们需要进一步改进它。 增加线程可能并没有真正的帮助,因为随着我们增加线程数量,处理失败的尝试数量也会增加。

我的问题是

  1. 剩下哪些可以提高性能的选项?

  2. 如果我同时运行同一应用程序的两个实例,每个实例并行运行32个线程,是否会有任何改进? 考虑到每个应用程序都将在不同的AppDomain中运行,这只是一个疯狂的想法。

最好的选择是在进行任何其他更改之前,严格衡量性能并确定瓶颈。 在问题上抛出额外的线程或进程不可能导致最佳解决方案。 从此处开始获取广泛的.Net分析器信息

为什么32个线程是一个幻数? 这会给您比31/30/29等更好的吞吐量吗?

这些线程在不工作时在做什么? 在任何给定时间,处于活动状态的线程都不能超过系统中处理器内核的数量。 如果您受CPU限制,那么添加更多线程会适得其反。

涉及多少上下文切换开销?

您的外部瓶颈候选人是什么-直接I / O,网络,数据库? 您尚未对应用程序的实际功能说什么。

您的线程共享资源吗? 单个共享数据项可能是一个很大的瓶颈,在这种情况下,添加线程也无济于事。 如果可能,将共享数据替换为本地线程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM