The client side GlideRecord object is often inefficient, because it returns lots of unnecessary data. GlideRecord and g_form.getReference are both involved.
Use client data as much as possible to eliminate the need for time-consuming server lookups. The top ways to get information from the server are g_scratchpad, and asynchronous GlideAjax lookup.