Actuellement je travaille sur un client lourd qui s'appuie sur .Net Remoting et j'ai de GROS soucis de lenteur.
Un de mes objets distant me retourne un DataTable.
Lorsque le DataTable n'a qu'une ligne (SELECT WHERE Id=123), le traitement est immédiat... mais lors de la première requête renvoyant plusieurs enregistrements (un SELECT LIKE par exemple) le traitement peut prendre jusqu'à plus de 2 minutes !!! (sur pentium III )
Et le truc bizarre c'est qu'après avoir ramé 2mn sur le 1er coup, tous les autres traitements sont de nouveau instantanés et ce jusqu'à extinction/redémarrage de l'appli...
Ah oui au passage, j'utilise un channel tcp avec serialisation binaire.
Mon code ne pose pas problème je pense puisqu'en local il n'y a plus ce problème...
Quelqu'un à une idéee ? Parce que là, je sèche complètement...
Message édité par astero-H le 30-01-2008 à 17:12:13
Publicité
Posté le 30-01-2008 à 17:11:38
moi23372
Posté le 30-01-2008 à 19:16:25
tu as essayé sur un autre pc que ce view pentium 3?!
Perso, je n'ai jamais rencontré de problème avec le remoting. Comment fait-tu ta sérialization?
astero-H
Posté le 31-01-2008 à 00:06:37
C'est pareil quelle que soit la machine... en fait le soft tourne déjà chez un client beta testeur sur du multi xeon Sur ce genre de machine je passe de 2mn à 30s mais ça reste quand même inacceptable...
Pour ce qui est de la serialization, je pense que j'utilise un serializer binaire... en fait j'y touche pas via le code, j'ai tout ça dans un fichier xml :
C'est pareil quelle que soit la machine... en fait le soft tourne déjà chez un client beta testeur sur du multi xeon Sur ce genre de machine je passe de 2mn à 30s mais ça reste quand même inacceptable...
Pour ce qui est de la serialization, je pense que j'utilise un serializer binaire... en fait j'y touche pas via le code, j'ai tout ça dans un fichier xml :
Code :
<channels>
<channel ref="tcp">
<clientProviders>
<formatter ref="binary />
</clientProviders>
<serverProviders>
<formatter ref="binary typeFilterLevel="Full" />
</serverProviders>
</channel>
</channels>
Voila comment moi je configure le remoting:
<system.runtime.remoting>
<application>
<service>
<wellknown mode="SingleCall" type="server.service.BusinessFacadeServer, BusinessFacadeServer" objectUri="BusinessFacadeServer" />
</service>
<channels>
<channel ref="tcp server" port="83" />
</channels>
</application>
<customErrors mode="Off"/>
</system.runtime.remoting>