Почему использование причинно-следственных связей в CCR приводит к утечкам памяти? - PullRequest
2 голосов
/ 10 марта 2009

У кого-нибудь есть информация об использовании Причинно-следственных связей? Я безуспешно пытался использовать их в своем проекте, так как они, похоже, вызывали огромные нагрузки на память.

Это необычно?

Помимо обычных (слишком простых) примеров, приведенных в документации, не так много информации об использовании причинно-следственных связей в коде CCR.

Я не могу привести ни одного примера кода для высказывания, поскольку я вырвал Causalities и заменил его более обычной обработкой исключений (хотя в CCR это не принято!)

1 Ответ

2 голосов
/ 10 марта 2009

Я только недавно начал смотреть на них, поэтому я не могу дать много советов, но я предложу то, что я могу:

  1. Проверьте, есть ли у вас какие-либо циклы в вашем коде - возможно ли, что причинность вызывается снова и снова? Примером этого является то, что вы создаете новую причинную связь и отправляете сообщение другому компоненту, который (в конечном итоге) отправляет обратно вашему компоненту, вызывая повторное выполнение исходной задачи, поэтому причинные связи «накладываются» друг на друга. Один из способов сделать это - проверить ActiveCausalities перед добавлением нового.
  2. Рассматривали ли вы попытку явно удалить причинно-следственную связь в конце той же области, где вы ее добавили?
  3. Очевидно, DSS широко использует причинно-следственные связи, поэтому, если бы произошла настоящая утечка, вы бы подумали, что они ее нашли.
  4. Согласен, примеров на эту тему недостаточно, поэтому сложно понять, что такое лучший метод, не пытаясь понять реализацию.

Проверьте этот пост out. Предполагается, что вы хотите автоматически удалить причинно-следственную связь в конце области, в которую вы ее добавили.

...