9

私は、おそらく約3000行のコードになるクラスを作成中です。

私が知りたいのは非常に単純です。各ページの上部でこのクラスを開始すると、オブジェクトメソッドの1つまたは2つだけが使用されますが、ページの実行時間が遅くなりますか?1日に数千回アクセスされると、サーバーにさらに負担がかかりますか?

もしそうなら、クラス全体を1つのファイルにまとめるのではなく、各メソッドを処理する拡張機能を作成することを検討する必要がありますか?

編集済み

まず、KingCrunchとKenaniahを修正するために、このクラスは私のAPI用です。つまり、Facebookアプリケーション全体に加えて、WebサイトやiPhoneアプリケーションに表示されるデータを取得するための多くの関数を保持しています。したがって、これらの行の700以上がコメントであることは言うまでもなく、当社のWebサイトのサイズと機能を考えると、3000行はかなり小さいです。構造上の欠陥があるかもしれませんが、設計上の欠陥はないことを保証できます。そのため、私はこの質問をしています...

構築関数は、デフォルト値を定義された変数に設定するだけで、それ以上のものはありません。

私はこのファイルを最初から完全に書き直したので、古いコードはなく、クラス内のメソッドは可能な限り効率的であると確信しています。

サーバーの使用状況などを監視し、apache abツールを使用して大量のトラフィックをシミュレートしており、メモリ使用量は急増していますが、問題ないようです。

4

3 に答える 3

5

各ページの上部でこのクラスを開始すると、ページの実行時間が遅くなります

ランタイムに追加されますか?はい。もちろん。無料のものはありません。解析されるコードのすべての行には、わずかなオーバーヘッドがあります(ただし、APCなどのオペコードキャッシュを使用すると、このコストのほとんどを取り除くことができます)。ただし、おそらくミリ秒未満のオーバーヘッドについて話しているのでしょう。確認する唯一の方法は、自分でプロファイルを作成することです。

1日に数千回アクセスされると、サーバーにさらに負担がかかりますか?

個人的な経験から、いいえ。しかし、繰り返しになりますが、自分自身をプロファイリングして測定します。サーバーの基本的なパフォーマンスメトリック(CPU使用率、負荷平均など)を監視する必要があります。変更をデプロイし、メトリックを監視します。

于 2012-01-18T18:39:20.643 に答える
1

いいえ、多くのLOCで構成されるクラスをインスタンス化しても、自動的に遅くなるわけではありません。

つまり、コンストラクターで何かを行わない限り、クラスの大きさではなく、そこで何をしているかによって異なります。

于 2012-01-18T18:37:07.100 に答える
1

いいえ、実際には複数のファイルに分割するよりも高速です。

唯一の問題は、多くの場合、コードの大きなブロックが発生し、変更を行うのが難しいことです。

編集:すべての行が有用である場合、それはより速くなります。古いコードがたくさんある場合は、クリーンアップを検討するかもしれません

于 2012-01-18T18:40:16.570 に答える