Jitclass to StructRef migration

Hi. I’m considering switching from jitclass to structref. I would like to know :

  • if the resulting compilation of methods/initializers can be cached on disk, as normal functions are with njit(cache=True). For now, to keep cache working I am converting any jitclass to a tuple before they exit njited cached functions, and converting the tuple to the jitclass after they enter.
  • the performance impact of repeatedly following the self.myfield references. I know this was/is(?) a concern with jitclasses due to reference counting. My usecase is long algorithms where I use closures extensively to capture locally constant values, compilation time ~ 2mn and load from disk is ~1s.
  • the practicality of writting a wrapper to get a similar interface to the jitclass decorator.
  • if it would be possible to take advantage of caching to iterate on a method implementation without triggering the recompilation of all methods on the structref.

I will get to test these, but any pointers would be appreciated.

Recent thread that may be of interest

1 Like