2009-03-09 4 views
2

Quelqu'un at-il des informations sur l'utilisation des Causalités? J'ai essayé sans succès de les utiliser sur mon projet car ils semblaient causer des charges de mémoire massives.Pourquoi l'utilisation de Causalités dans CCR entraîne-t-elle des fuites de mémoire?

Est-ce inhabituel? Au-delà des exemples normaux (trop simples) donnés dans la documentation, il n'y a pas beaucoup d'informations sur l'utilisation des Causalités dans le code CCR.

Je ne peux pas donner des exemples de code par-dire que j'arnaquer les causalités et remplacé par la gestion des exceptions plus classiques (non conventionnelles CCR si!)

Répondre

2

J'ai récemment commencé à les regarder, donc je ne peux pas offrir beaucoup de conseils, mais je vais offrir ce que je peux:

  1. Vérifiez si vous avez des cycles dans votre code - est-il possible qu'une causalité se reproduit encore et encore? Un exemple de ceci est où vous créez une nouvelle causalité et postez un message à un autre composant qui (ultimement) publie sur votre composant provoquant l'exécution de la tâche originale, de sorte que les causalités s'empilent les unes sur les autres. Une façon de faire est de vérifier ActiveCausalities avant d'ajouter votre nouveau.
  2. Avez-vous envisagé de supprimer explicitement la causalité à la fin de la même portée où vous l'avez ajoutée?
  3. Apparemment DSS utilise largement les causalités, de sorte que s'il y avait vraiment une fuite, alors vous penseriez qu'ils l'auraient trouvé.
  4. D'accord, il n'y a pas assez d'échantillons sur ce sujet, il est donc difficile de savoir quelle est la meilleure pratique sans essayer de comprendre la mise en œuvre.

Check this post out. Il suggère que vous voulez supprimer automatiquement la causalité à la fin de la portée que vous avez ajouté.

+0

Je pense que j'ai beaucoup de chemin à faire avec l'apprentissage des meilleures pratiques/modèles du CCR –

Questions connexes