The use of deepcopy() in our codebase significantly reduces performance because of the large number of allocations it requires. There is no need for deepcopy() if the caller only wishes to read the data and not modify it. This creates a performance burden for readers to protect the interests of those who may want to modify the data. It would be more efficient to perform deepcopy() on the caller's side when necessary, rather than doing it implicitly all the time. We might want to consider documenting exported methods to indicate that a deepcopy() is needed if the data is to be modified. And remove preemptive deepcopy() from exported methods.
The use of
deepcopy()
in our codebase significantly reduces performance because of the large number of allocations it requires. There is no need fordeepcopy()
if the caller only wishes to read the data and not modify it. This creates a performance burden for readers to protect the interests of those who may want to modify the data. It would be more efficient to performdeepcopy()
on the caller's side when necessary, rather than doing it implicitly all the time. We might want to consider documenting exported methods to indicate that adeepcopy()
is needed if the data is to be modified. And remove preemptivedeepcopy()
from exported methods.