The routine C4::Biblio::get_biblio_authorised_values is horrifyingly inefficient. In a relatively low-powered system with a large number of authorized values, exclusive time in get_biblio_authorised_values can be several seconds or more when doing a search, since the routine is called once per result.
It looks like there is only one occurence of this method in the current codebase, but sadly it's Search.pm: C4/Search.pm: $oldbiblio->{'authorised_value_images'} = ($search_context->{'interface'} eq 'opac' && C4::Context->preference('AuthorisedValueImages')) || ($search_context->{'interface'} eq 'intranet' && C4::Context->preference('StaffAuthorisedValueImages')) ? C4::Items::get_authorised_value_images( C4::Biblio::get_biblio_authorised_values( $oldbiblio->{'biblionumber'}, $marcrecord ) ) : [];
Well, not really, the method has been removed by commit 85e7d186ec2f0a30e479bc924a1023c73eefc28e Bug 16167: Remove Authorised value images prefs But the call has been re-added recently: commit 5e4e10c4ca558180137bf5a4ff5a68495efa0ec7 Bug 14385: Extend OpacHiddenItems to allow specifying exempt borrower categories So, this bug is fixed, but we have another one running.