Инструменты, чтобы найти бокс в коде
Фон: я разрабатываю для Xbox и нахожусь на стадии optomising. Мне нужно сократить распределение объектов. Для начала нужно выяснить, где происходит (не) бокс.
Я очень новичок в IL (в том смысле, что я никогда не смотрел ни на что!) И хотел бы избежать запуска DLL через дизассемблер, отыскивая команду (un)box и пытаясь определить, к какой строке кода она относится,
Вопрос: Существуют ли какие-либо инструменты, которые будут сообщать о таких вещах (где происходит (не) бокс) для меня?
РЕДАКТИРОВАТЬ: Сделал запрос ниже в свой вопрос, так как он довольно отличается от этого.
Много-много бонусных баллов за способ привязки дампа кучи GC к строкам кода, где происходили создания объектов!!
2 ответа
В этой статье MSDN Magazine подробно описывается, как создать правило FxCop (Code Analysis), которое обнаруживает бокс и распаковку и может представлять нарушения в качестве предупреждения. Статья немного на старой стороне, но вы должны быть в состоянии адаптировать ее к вашим потребностям.
Существует инструмент под названием BoxCop, который делает именно это.
Это не очень полезно при попытке интегрировать проверки для упаковки / распаковки в процесс сборки. Для этого вам понадобится какое-то правило для FxCop.