I'll see if I can tackle this at some point. I'm interested in seeing how much we can speed it up.
Slow initialization of the annotation manager has kind of by far been the main bottleneck for many of the scripts I've run, particularly on large datasets. Oftentimes you just want to get sets metadata, or something simple like that, but it takes very long. In fact, on a given dataset, other "slow" functions like get_segments seem to be quite a bit faster.
In fact, I'm entirely unsure on the face of it why initialization should take more than like a tenth of a second.
For something like the benchmarking dataset, where you may iterate over 20 or so datasets to get some metadata, initialization is prohibitively slow.
At the face of it it's tempting to move around some caching behavior and enforce explicit use of am.read(), or something to that effect, but let's try this while making no changes to the public API or behavior of the class.
I'll see if I can tackle this at some point. I'm interested in seeing how much we can speed it up.
Slow initialization of the annotation manager has kind of by far been the main bottleneck for many of the scripts I've run, particularly on large datasets. Oftentimes you just want to get sets metadata, or something simple like that, but it takes very long. In fact, on a given dataset, other "slow" functions like
get_segmentsseem to be quite a bit faster.In fact, I'm entirely unsure on the face of it why initialization should take more than like a tenth of a second.
For something like the benchmarking dataset, where you may iterate over 20 or so datasets to get some metadata, initialization is prohibitively slow.
At the face of it it's tempting to move around some caching behavior and enforce explicit use of
am.read(), or something to that effect, but let's try this while making no changes to the public API or behavior of the class.