Имеет ли добавление [Serializable] к классу какие-либо последствия для производительности?
Мне нужно добавить атрибут [Serializable] к классу, который чрезвычайно чувствителен к производительности.
Будет ли этот атрибут влиять на производительность работы класса?
Ответ 1
Экземпляры классов атрибутов создаются только при первом доступе. Если вы не выполняете сериализацию в этом конкретном классе, конструктор SerializableAttribute() никогда не будет вызван, следовательно, он не вызовет никаких проблем с производительностью.
Атрибуты представляют собой аннотации метаданных, поэтому они не добавляют вес к классу во время выполнения, если только они не интерпретируются средой выполнения определенным образом, что заставляет ее относиться к классу по-разному.
[Serializable] - это просто атрибут маркера, используемый в качестве условного обозначения, указывающий, что класс сериализуем, он не имеет никакого эффекта, и среда выполнения не обрабатывает классы каким-либо особым образом.