Подтвердить что ты не робот

Имеет ли добавление [Serializable] к классу какие-либо последствия для производительности?

Мне нужно добавить атрибут [Serializable] к классу, который чрезвычайно чувствителен к производительности.

Будет ли этот атрибут влиять на производительность работы класса?

4b9b3361

Ответ 1

Экземпляры классов атрибутов создаются только при первом доступе. Если вы не выполняете сериализацию в этом конкретном классе, конструктор SerializableAttribute() никогда не будет вызван, следовательно, он не вызовет никаких проблем с производительностью.

Вот интересная статья об конструкторах атрибутов: http://www.codingonthetrain.com/2008/10/attribute-constructors.html

Ответ 2

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

[Serializable] - это просто атрибут маркера, используемый в качестве условного обозначения, указывающий, что класс сериализуем, он не имеет никакого эффекта, и среда выполнения не обрабатывает классы каким-либо особым образом.