Request to refactor ov::op::v0::Constant to cache the result of shape_size(m_shape) instead of recomputing it repeatedly. This optimization would prevent unnecessary work, as the shape rarely changes after construction.
### Request Description While reviewing the implementation of `ov::op::v0::Constant`, I noticed that the size of the tensor is repeatedly computed using `shape_size(m_shape)` in multiple locations. Since `shape_size()` iterates over all dimensions, this introduces unnecessary repeated work even though the shape rarely changes after construction. There is also an existing TODO in the code suggesting that this value should be cached. <img width="1050" height="96" alt="Image" src="https://github.com/user-attachments/assets/42609a47-d845-42fd-8eee-b2a391e86a91" /> ### Proposed improvement Introduce a member variable (e.g. `m_shape_size`) that stores the result of `shape_size(m_shape)`. This value can be initialized in constructors and updated during attribute visiting (deserialization). Then internal usages of `shape_size(m_shape)` can be replaced with the cached value. ### Expected benefits - Avoid repeated O(N) shape multiplications - Slight runtime improvement in graph executi