2010-10-24 5 views
-2

J'ai un service WCF, qui fonctionne avec des sockets async, j'ai quelques problèmes de performance, j'ai donc décidé de refactoriser le code, j'ai lu quelques articles sur la facilité d'utilisation de F # pour async et multi threading ainsi de suite, mais je veux savoir que je vais obtenir une meilleure performance pour utiliser le parallélisme F #? et sa compatibilité facile avec le service WCF, j'ai une grande quantité de données qui devraient être transférées via les sockets (sur tcp) donc il est important d'avoir un bon algorithme de performance et de parallélisme.Programmation de socket asynchrone et F #

+0

«J'ai une question de performance » - Pourquoi pensez-vous que F # résoudra vos problèmes de performance ? Suggérez-vous de décrire la perf. problèmes que vous rencontrez –

+0

J'ai trop de clients légers, ils envoient des données au serveur, et la requête du serveur pour obtenir des données avec le timing, quand ils veulent envoyer des données au serveur je dois mettre à jour l'interface utilisateur et mettre à jour les DB connexes , les données des clients légers seront reçues dans un temps inconnu (dans un intervalle de (1,420) seconde), donc je devrais utiliser le parallélisme, et avoir un moyen efficace de stocker les données dans DB, pour éviter les données perdues et avoir une bonne présentation. –

+0

@Mitch Wheat, je ne pense jamais que F # résout mon problème de performance, je pense que s'il y a une bonne bibliothèque pour effectuer de meilleurs algorithmes, ie nous pouvons utiliser asp.net ou MVC asp pour web app, mais le dernier design est meilleur.) donc je peux l'utiliser pour éviter de mauvais codage, faire de meilleures performances. –

Répondre

5

En bref:

F # a un profil de performance similaire à C#. Vous ne devriez pas vous attendre à ce que F # et C# aient beaucoup de différence de perf pour un code de structure similaire.

F # a un meilleur modèle de programmation pour le code asynchrone par rapport à C#. Si vous faites beaucoup de callback BeginFoo/EndFoo en C#, alors vous trouverez beaucoup plus facile d'écrire ce code en F # (et plus facile de le faire correctement).

http://lorgonblog.wordpress.com/2010/03/28/f-async-on-the-server-side/