我有一个laravel应用程序,其中向用户呈现剧集列表,每个剧集都有截图。每个屏幕截图都按照此伪代码加载到视图中的foreach循环中:
foreach $episodes as $episode
$episode->getScreenshot($episodeID);
endforeach
getScreenshot()
方法解析了ScreenshotLocator
容器中的特定IoC
类,如下所示:
$screenshotLocator = App::make('\Animekyun\Images\Screenshots\ScreenshotLocator');
(我正在阅读一些关于将它作为单例绑定到容器的内容。是否需要考虑这个问题?目前它并没有受到约束)
ScreenshotLocator
类旨在使用Episode
模型构建实际屏幕截图文件夹(下面的源代码)的路径。屏幕截图(每集有多个)都存储在文件夹结构中,并且必要的文件被加载并存储在Collection
中。
加载屏幕截图从40 ms
中取出135 ms
,整个页面加载到Digital Ocean Droplet上。 (10倍运行基准)
所以我的问题是有什么方法可以优化它?
ScreenshotLocator
类的来源:
http://laravel.io/bin/6L19r