私は、ユーザーをループして自分の好みに基づいてパーソナライズされた電子メールを送信する仕事をしています。私はSymfony2のテンプレートエンジンを使ってHTMLを生成しています。Symfony2テンプレートrenderResponseによりCPU使用率が上昇する
は、基本的にはこのようなものは、ループ内で実行されます。
public function getHTML($user)
{
$templating = $this->getContainer()->get('templating');
$html = $templating->renderResponse(
'recommendation.html.twig',
array(
'user' => $user
)
)->getContent();
return $html;
}
問題は、CPU使用率が100%まで撮影し、それを各ユーザーに処理に時間と時間がかかります。
Took 5.4851469993591 seconds
Took 12.790720939636 seconds
Took 23.007503032684 seconds
Took 34.852293014526 seconds
Took 43.901736021042 seconds
Took 66.028288125992 seconds
各行は100人のユーザーを処理するのに要した時間を表しています。したがって、最初の100人のユーザーは5秒、次に12秒などでした。
私はパフォーマンスを改善するために何ができるでしょうか?
プロファイラーとプロファイルを取って、それほど時間がかかります。 – zerkms