1

本番環境のオープンアカウントプロセスで、オブジェクトの作成時間をログに記録してきました。定期的に、オブジェクトの初期化には予想よりも時間がかかります。初期化とは、それをinit()と呼び、単純な変数またはオブジェクトである可能性のあるいくつかの引数を渡すことを意味します。例えば

<cfset validateObj = createObject("component", "compExample").init( 
        productionMode = VARIABLES.productionMode, 
        ipWhiteListed = isWhiteListed, 
        ipLocatorObj = VARIABLES.ipLocatorObj ) />

init()メソッドで発生するのはこれだけです。通常、実行時間は0ミリ秒ですが、ランダムな時間に3秒または3.5秒かかる場合があります。これは、特定のサーバーや一般的に忙しい時期に固有のものではありません。それはかなりランダムに見えます。

多くのサーバーでcfstatを確認し、最大CP /秒が-1であるにもかかわらず、これらのテンプレートは特に頻繁に使用されないため、テンプレートキャッシュから削除されていると考えられました。

CF8,0,1を実行しています

他の誰かがこれに出くわしたことがありますか?

4

5 に答える 5

1

そのinitメソッド内に、ランダムにパフォーマンスが低下する可能性のある他の何かを呼び出す何かがある可能性があります。これは、引数がinitメソッドによってCFC内にどのように格納されているかが原因である可能性があります。

CFC initメソッドの内部では、次のようになっています。

<cfset variables.productionMode = arguments.productionMode />

または、次のようなセッターメソッドを使用します。

<cfset setProductionMode(arguments.productionMode) />

おそらくstructAppend?

<cfset structAppend(variables, arguments) />

最初の方法である、単純なセットだけでは、問題が発生する可能性はほとんどありません。セッターメソッドを使用する2番目のメソッドは、そのセッターメソッドが実行していること、呼び出している他のメソッドなどに応じて、処理速度を低下させる可能性があります。3番目のメソッドはかなり一貫しているはずですが、structAppendやその他の内部関数を見てきました。明らかな理由もなくランダムに減速します。

ジョン・ウィッシュのコメントは間違いなく調べるべきものだと思います。また、initメソッドの速度が低下したときに、このサーバーで奇数のトラフィックが発生しましたか?

createObject()呼び出しだけを分離して、オブジェクトのインスタンス化によって速度が低下したのか、それとも本当にinitメソッドなのかを確認しましたか?一般に、CFオブジェクトのインスタンス化は、ランダムに遅いプロセスになる可能性があります。これは最近のCF8の方が良いかもしれませんが、経験上、問題になる可能性があります。

于 2010-03-11T16:26:47.990 に答える
1

常に jvm を最新バージョンにアップグレードしてから、問題がまだ存在するかどうかを確認してください。

于 2010-03-11T18:16:58.033 に答える
1

テンプレート キャッシュ内のアイテムの最大数を増やしました。キャッシュは LRU を使用し、これらのオブジェクトは特に頻繁に使用されない機能に固有であるため、キャッシュから追い出されていました。サーバーの半分を更新し、半分を同じままにして、週末後に比較しました。キャッシュが増加したサーバーでは、オブジェクトのインスタンス化時間が大幅に短縮されました。

于 2010-03-15T16:22:35.527 に答える
0

いくつかの考え....ロックが進行中か、ネットワーク/Webサービス/データベースへの依存関係がありますか。監査または同様の作業を行っていますか (AOP など)?

また、どのCFバージョンを使用していますか?サーバーは .1 アップデートを実行していますか (該当する場合、つまり 8.01)。

于 2010-03-11T16:18:43.470 に答える
0

サーバーマネージャーからプロファイラーを実行している可能性はありますか? これにより、同様のランダムな速度低下が発生しました。

于 2010-03-11T15:33:36.307 に答える