2017-09-12 1 views
0

私たちはRailoからLucee 5.2.3に切り替えており、リクエストの起動時に大きなレイテンシがあることに気付きました。私はそれを約30個のコンポーネントをcreateObject('component', ...)でRequestスコープにロードする関数に煮詰めたと思う。 Railoでは、このリストは1秒以内に読み込まれます。 Luceeでは約20秒かかることがありますが、必ずしもそうとは限りません。データソースを動的に作成したり、環境のプライマリグローバルデータソース以外のデータソースに接続する必要がある場合は、一貫して発生するようです。これらのコンポーネントオブジェクトの初期ロード後、1秒以内にロードされます。私は、この最初のパフォーマンスヒットを引き起こす可能性があることを理解できません。 .cfcファイルはサイトのROOTディレクトリの下にあるサブディレクトリにあるので、標準<cfset Request.Helpers[ThisHelper] = createObject("component","cfcs.componentFileName") />を使用しています。この関数はinit()を呼び出すのではなく、単にオブジェクトを作成しています。また、この関数は、データソースを動的に作成する場所ではなく、要求スコープ内にオブジェクトを排他的に作成しています。要求開始時にLuceeコンポーネントを作成するのに大きな遅延が発生する原因は何ですか?

答えて

0

Luceeには特にコメントすることはできませんが、伝統的に私たちは常にCFで過剰なオブジェクトの作成を避けてきました。オブジェクトのいずれかがアプリケーションスコープに移動し、一度作成され、すべての訪問者が再利用できますか?

LuceeがClassLoaderベースではなくOSGiベースのものであることもあります。おそらく、OSGiサービスの起動にいくらかのオーバーヘッドがありますか?

+0

ええ、物事はちょうど古い決定に基づいてこの時点まで構築されました。我々は大規模な回帰テストを避けることを望んでいたが、それは不可能であるように見える。ありがとうジョン! – Kjersti

関連する問題