It is slower than bibtex which is in C, even if you take into consideration the first run unpacking. Bear in mind that biber does a lot more than bibtex too. They are hardly comparable in functionality at all. Your tikz and maths should make no difference to biber. If your cache is getting deleted every time you run, this will make a huge difference. Easy to check this - delete the cache and run. Is the second biber run any faster?
The main overhead is sorting. It is a complex business, dealing with much more than bibtex - Unicode 7.0, direction per-field, case per field ...
Next overhead is uniqueness processing. Again, complex. Bibtex probably does about 20% of what biber does. See the biber PDF manual to get a sense of its share of the biblatex work.
As of version 2.5 (currently in DEV), I have done some profiling with NYTProf. The majority of biber
s time is spent inside the Unicode::Collate
module (written in C), as one would expect as sorting is a main focus and it's expensive to do tailored UCA sorting (which bibtex
doesn't even come close to doing). After some examining of the call stacks, I've done some loop tidying for sorting calls and now biber
2.5 is about four times as fast as 2.4 and probably all earlier versions.
As mentioned in the doc, for performance testing, I use a 2150 entry, 15,000 line .bib file which references a 630 entry macro file with a resulting 160 or so page bibliography. In biber
2.4 this takes about 2 minutes to process. In the current 2.5 development version it takes about 28 seconds. This is almost the same now as when using the --fastsort
option which doesn't use Unicode collation (so I may drop --fastsort
since it is functionally far less useful and if there is no performance benefit, there is no longer any point in it).
Best Answer
\addbibresource
features an optional argument that allows you (among other things) to specify the location of a (local or remote) resource and the date type of the resource (e.g.,bibtex
,ris
). See section 3.7.1 of thebiblatex
documentation (ver. 3.15, dated August 19, 2020) for details.Note that when using
\addbibresource
(which was introduced inbiblatex
v1.2), "files must be specified with their full name, including the extension", i.e., instead ofyou must use (assuming the standard
.bib
file format)EDIT: Two additional notes about using
\addbibresource
:Contrary to
\bibliography
, one can't use a comma-separated list to load multiple.bib
files (\bibliography{bibfile1,bibfile2}
). Instead, one must invoke\addbibresource
multiple times.As PLK points out in his comment, loading a remote bibliography resource requires
biber
as backend.