Skip to content

Make PseudoJet and EEJet isbits structs #145

@m-fila

Description

@m-fila

Coming from #88, passing mutable structs between C and Julia interfaces requires extra copies and allocations since they are differently stored in memory. This happen very often as the API consists of multiple smaller function passing around the ClusterSequences and jet objects. Unfortunately I don't have a concrete estimate on a cost of it.

Changing the PseudoJet and EEJet to be immutable structs and isbits would allow one to remove that extra overhead.
I think it should also have a potential to improve slightly the performance on Julia side since then more continuous blocks of memory could be used.
Hopefully this should be possible with a moderate effort since the only moment when mutation is required seems to be adding history information

Metadata

Metadata

Labels

InternalsChanges that affect the internals of the package, but not the public APIinterface changeBreaking changes to any public interfaces

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions