Файл-> Управление исходным кодом-> Усовершенствованный-> Управление исходным кодом Изменения и затем развязывает и/или разъединяет все проекты и решение.
Это должно удалить всю привязку из решения и файлов проекта. (После того, как это можно переключить поставщика SCC в Инструменты-> Опции-> Управление исходным кодом-> Сменный Выбор).
спецификация SCC предписывает, чтобы все поставщики SCC реализовали это поведение. (Я только протестировал его на VSS, TFS и AnkhSVN)
Получите хороший профилировщик, например YourKit . Он может сказать вам, сколько времени потрачено на ожидание и блокировку определенных методов и содержащихся в них мониторов объектов. Например:
Что касается вашего комментария о производственных показателях, вы весьма ограничены в том, что вы можете собрать. Наибольшее количество информации, которую вы собираетесь получить, взято из ThreadMXBean , который может предоставить вам метаданные обо всех запущенных потоках. Тем не менее, он не предоставит вам информации о состоянии конкретного монитора объекта.
Я не хочу здесь углубляться в мою башню из слоновой кости, но я действительно считаю, что лучше всего попытаться воспроизвести вашу производственную среду как можно ближе насколько возможно. Потратив некоторое время на настройку сейчас, вы многократно получите дивиденды в будущем.
Тед, я сочувствую вашей ситуации, но когда производительность настолько критична, я рекомендую вам стиснуть зубы и смоделировать.
Это не должно быть так сложно, как вы боитесь: вместо того, чтобы пытаться сгенерировать поток сообщений из ваших обменов, почему бы не записать входящий поток и не воспроизвести его обратно в симуляции?
Без чего-то подобного вы всегда будет сталкиваться с проблемой Гейзенберга: влияние на систему, которую вы измеряете.
Для аналогичной проблемы в базе данных мы записываем строку непосредственно перед запросом и сразу после получения блокировки. Мы также регистрируем один после выпуска. Затем мы обрабатываем эти данные для генерации той статистики, которую вы ищете.
РЕДАКТИРОВАТЬ: Помимо развитой системы, AspectJ может быть хорошим вариантом для создания журналов.