Skip to content

Conversation

@c247t
Copy link
Collaborator

@c247t c247t commented Jul 5, 2024

Everything else might be too small to outweigh the overhead, or not even that redundant to begin with. We should provide some other means to decide on a field to field basis when to deduplicate inside de-externalization.

@kelunik
Copy link
Collaborator

kelunik commented Jul 5, 2024

Is this an assumption or baked by data?

@c247t
Copy link
Collaborator Author

c247t commented Jul 8, 2024

It is backed by the fact that loading WatchDAO from dumps yields a DAO that looks smaller, but a StringDeduplicator that is much fatter, so totals are far worse. This is at least part of the reason why heap consumption keeps slowly creeping up over time.

@c247t
Copy link
Collaborator Author

c247t commented Jul 8, 2024

The optimum solution would be to define the behavior through an annotation property, so that fields which profit greatly from content deduplication can make use of it again. For the general case though, we should enforce only scenarios where the win is guaranteed, as with redundant emptystring instances. Plus, for any temporary entities not kept in memory, deduplication means just a waste of additional allocation and gc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants