New filter is about x6 slower than old

Since the addition of filter expressions in V2.44d, the filter is about 6x slower than before.

E.g. on 17044 tracks, I filter on 278 barcode numbers using

* MATCHES 00008637209025|00008637211721|00008637215521|00008637215927|...

On V2.44 this takes about 1min 40sec. On V2.45a this takes about 12min!

Please could the original performance be restored? Thanks.

I think you can speed it up greatly with

  • HAS 00008637209025 OR * HAS 00008637211721 OR * HAS 00008637215521 ...

Thanks - good discovery! That speeds it to 50sec.

Florian, could you please implement this in the app?

You mean whether there is an non-regex equivalent of an arbitrarily complex regular expression? Seriously not.

Fair enough. Perhaps then the root cause is visible and fixable? It is surprising to find a simple change in syntax ("* MATCHES") has had such a detrimental effect on performace.

* MATCHES applies the same regular expression on all tag fields of your files. This is a costly operation.

If the barcode numbers are stored in a specific field in your files field MATCHES would only check the specific field. The same applies to the HAS keyword.

* MATCHES applies the same regular expression on all tag fields of your files. This is a costly operation.

Well sure - no surprise it took a couple of minutes before. But why has it just got 6x slower?

If the barcode numbers are stored in a specific field in your files

Sadly not.

field MATCHES would only check the specific field.

Understood and indeed that is not as slow (3min40s) but is still much slower than before.

This is indeed weird. I'll have a look at it and optimize it for the next version.

I really hope you can prioritise the 6x speed loss Florian, since that is the far more serious one.

This is now fixed with Mp3tag v2.45c.

Just curious: have you already tried the new version and provide some numbers regarding performance of this version?

No. I've mostly given up on the new version and reverted to the original. I'll come back to the new one in a few weeks probably.

Thanks for the purported fix though.