Slow `/namespace/project/blob/master/filename` endpoint on EE

Problem

Today, I was taking benchmark on http://local.gitlab.test:8181/root/test-proj/blob/master/README.md endpoint on my local machine, and surprisingly there is a significant difference between CE and EE.

In CE, the endpoint renders multiple partials. Here are the list of slow hamls and its timing.

app/views/projects/blob/show.html.haml : 500 msec
  app/views/projects/blob/_blob.html.haml : 324 msec

app/views/layouts/application.html.haml : 713 msec
  app/views/layouts/header/_default.html.haml : 273 msec
  app/views/layouts/_page.html.haml : 315 msec

In EE, the rendering takes 4-5 times more time.

app/views/projects/blob/show.html.haml : 1980 msec
  app/views/projects/blob/_blob.html.haml : 1350 msec

app/views/layouts/application.html.haml : 2940 msec
  app/views/layouts/header/_default.html.haml : 1000 msec
  app/views/layouts/_page.html.haml : 1500 msec

I know EE has some extra features to be rendered, however, taking 4-5 sec to render a blob page simply annoying. Also, this makes me worried that EE gets slower and slower as we introduce more features.

How can we make this faster?

Proposal

TBD

Edited by Shinya Maeda