beets/docs
Sam Thursfield 2fa3717731 Optimise FormattedMapping when querying a specific set of fields
This changes greatly improves the speed of `beet export` and `beet info`
when the `--include-keys` option is used. It also removes the globbing
feature of `--include-keys` that was added in #1295. (See #3762 for
discussion).

Listing all fields for an item requires querying the database to find
any flex attributes. This is slow when done for every item being
exported. We already have a way for the user to specify a fixed set
of keys, but we previously queried everything and filtered it afterwards.
The new approach is more efficient.

Code that iterates through all fields now have to handle invalid field
names. The export and info plugins output invalid fields as None.

Timings before:

    > /usr/bin/time beet export -i title,path,artist -l  Bob Dylan
    13.26user 20.22system 0:34.01elapsed 98%CPU (0avgtext+0avgdata 52544maxresident)k

    > /usr/bin/time beet export -l  Bob Dylan
    12.93user 20.15system 0:33.58elapsed 98%CPU (0avgtext+0avgdata 53632maxresident)k

Timings after:

    > /usr/bin/time beet export -l  Bob Dylan
    13.33user 20.17system 0:34.02elapsed 98%CPU (0avgtext+0avgdata 53500maxresident)k

    > /usr/bin/time beet export -i title,path,artist -l  Bob Dylan
    0.49user 0.07system 0:00.56elapsed 98%CPU (0avgtext+0avgdata 50496maxresident)k

Notice the dramatic speedup in the last example!
2021-05-01 23:41:09 +02:00
..
dev Use simpler approach of asserting that at most one handler of import_task_before_choice returns an action. 2021-03-28 16:53:01 -05:00
guides Update docs for #3783 2020-10-25 06:57:46 -04:00
plugins Optimise FormattedMapping when querying a specific set of fields 2021-05-01 23:41:09 +02:00
reference Merge pull request #3088 from rubdos/reflink 2020-11-27 13:29:10 -05:00
changelog.rst Optimise FormattedMapping when querying a specific set of fields 2021-05-01 23:41:09 +02:00
conf.py Add genius to linkcheck ignore list 2020-10-22 00:07:49 +01:00
contributing.rst add CONTRIBUTING.rst to the docs 2020-07-20 19:56:05 -07:00
faq.rst Simplifications to #3778 2020-10-23 20:33:22 -04:00
index.rst add CONTRIBUTING.rst to the docs 2020-07-20 19:56:05 -07:00
Makefile Add new livereload server for docs 2016-01-25 13:19:26 -08:00
modd.conf Switch to modd for live docs build 2017-12-21 11:39:08 -05:00