Я был поражен мыслью, что было бы интересно, если бы приложение могло периодически сканировать объекты, которые висят в его поколении 2 или куче больших объектов в сборщике мусора, и посмотреть, может ли оно обнаружить вещи, которые задерживаются для действительно долго / навсегда. Основная идея заключается в том, что приложение может определять потенциальные объекты, которые являются утечкой ресурсов, если одна и та же вещь присутствует в нескольких коллекциях (отслеживание их по слабым ссылкам, так что сам процесс его профилирования не удерживает). Я могу найти способы спросить, в каком поколении находится конкретный объект, и найти API для неуправляемого кода или инструменты отладки для исследования управляемых куч, но я действительно хочу, чтобы управляемый вызов дал мне какую-то структуру данных со всеми объекты в указанном поколении.
Есть ли у меня надежда найти такую вещь, или я ищу что-то, чего не существует?
Теоретически возможно выложить экземпляр приложения-отладчика и проанализировать результаты или что-то в этом роде, но я бы хотел, чтобы он работал на живых веб-серверах во время низкой нагрузки, и я не уверен, что ops хотел бы, чтобы я подключил отладчик, даже если бы это было возможно:)