Je dois obtenir le débit maximal dans mon service WCF. Dans l'un de mes tests, le service ci-dessous n'a reçu que 50k éléments de données par minute en utilisant NetTcpBinding. Une liaison déconnectée comme NetMsmqBinding pourrait-elle améliorer cette performance?Quelle liaison WCF est la plus performante?
Le service et le client utilisent WCF et s'exécutent sur la même machine.
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Multiple)]
public class Storage : IStorage
{
protected List<int> _data = new List<int>();
public void Insert(int[] data)
{
lock (_data)
{
_data.AddRange(data);
}
}
public int[] Get()
{
lock (_data)
{
return _data.ToArray();
}
}
}
Le code ci-dessus est une version simplifiée du code actuel.
Référez-vous à http://stackoverflow.com/questions/1613586/c-wcf-inter-process-communication/1613601#1613601 pour un organigramme sur la façon de sélectionner les liaisons WCF. Il ne traite pas directement de la question de la performance, mais d'autres personnes qui se penchent sur cette question peuvent trouver cela utile. –