Make loading library maps much cheaper
Make loading library maps much cheaper

Summary:
Ref T8575. Currently, if there are any extensions to a library, we do a small amount of extra work every time we go to load a symbol. However, we do this often enough that it mounts up. This work also requires that PHP copy the library map, which is often large.

We can just cache the result of this work and be able to pull the map more cheaply.

Test Plan: Saw homepage cost drop 29% (273ms -> 195ms). This effect is much larger than I'd expect to see in production, since installs should only benefit if they have extensions.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T8575

Differential Revision: https://secure.phabricator.com/D13323

yangshiqi/libphutil,librewiki/libphutil,yangshiqi/libphutil,Khan/libphutil,librewiki/libphutil,codelabs-ch/libphutil,PageUpPeopleOrg/libphutil-patches,newbeess/libphutil,fivestars/libphutil,newbeess/libphutil,uhd-urz/libphutil,memsql/libphutil,zhihu/libphutil,uber/libphutil,r4nt/libphutil,christopher-johnson/libphutil,codelabs-ch/libphutil,devurandom/libphutil,Khan/libphutil,devurandom/libphutil,uber/libphutil,memsql/libphutil,PageUpPeopleOrg/libphutil-patches,fivestars/libphutil,wikimedia/phabricator-libphutil,uhd-urz/libphutil,schlaile/libphutil,wikimedia/phabricator-libphutil,devurandom/libphutil,wxstars/libphutil,librewiki/libphutil,Symplicity/libphutil,aik099/libphutil,eSpark/libphutil,wxstars/libphutil,fivestars/libphutil,zhihu/libphutil,wxstars/libphutil,memsql/libphutil,newbeess/libphutil,Khan/libphutil,r4nt/libphutil,eSpark/libphutil,uhd-urz/libphutil,yangshiqi/libphutil,PageUpPeopleOrg/libphutil-patches,christopher-johnson/libphutil,aik099/libphutil,schlaile/libphutil,zhihu/libphutil,Symplicity/libphutil,codelabs-ch/libphutil,eSpark/libphutil,aik099/libphutil,schlaile/libphutil,uber/libphutil,christopher-johnson/libphutil,Symplicity/libphutil,wikimedia/phabricator-libphutil,r4nt/libphutil