3

私は公開ホスティング会社でホストされている webapp を持っていますが、サイトはまだ公開されておらず、まだいくつかのテストを行っています。依存性注入のために Windsor Castle Container で nHibernate を使用していますが、サイトの応答が時々非常に遅いようです。サポートに連絡しましたが、サーバーではなく私のアプリだと言われました。公開ホスティング会社でホストされているときに、ORM ベースのサイトで同様のパフォーマンスの問題が発生した人はいますか?

また、ウェブサイトをホスティングするためにどのホスティング会社をお勧めしますか? Godaddy を試してみましたが、nHibernate に必要と思われる完全な信頼で Web サイトを実行することを許可していないため、使用できませんでした。


xml 構成ファイルを使用して nHibernate を構成し、次の方法でセッションを開きました。

using (ISession session = _sessionManager.OpenSession())
{         
ICriteria crit = session.CreateCriteria(typeof(Content));
   return crit.List();
}

またApplication_Start、次のコードがあります。

private static WindsorContainer container;
if (container == null)
   {
     container = new WindsorContainer(new XmlInterpreter(filePath));
      Application[Constant.CastleWindsorAppKey] = container;
    }
4

3 に答える 3

2

測定しないと、アプリケーションの速度がどれほど遅いかはわかりません。開発中にタイミングhttpモジュールを使用して、大きなパフォーマンスの問題をすばやく認識しています。ページの読み込みが遅い場合は、プロファイラーを使用して正確なボトルネックを見つける必要があります。現在のプロジェクトで NHibernate を使用していますが、パフォーマンスの問題はありません。私の最も複雑なクエリには、10 個の異なるクラスの複雑なオブジェクト グラフが含まれており、それらの NHibernate マッピングを使用すると、実行に 0.082 秒かかります。そのアプリケーションの主なボトルネックは、html aspx テンプレートを応答にレンダリングすることです (0.5 秒かかります)。多くの場合、パフォーマンスの問題はデータアクセスにありますが、測定しないと確信が持てません。

于 2008-12-02T20:03:18.783 に答える
1

どんな種類の計装もしなくても、あなたはただ推測しているだけです。db呼び出しの周りにタイミングプロキシをラップする必要があります。次に、各呼び出しにかかる時間をログに記録します。これがあなたの時間が費やされている場所である場合、あなたは先に進むために必要な情報を持っています。

于 2008-12-02T18:56:07.543 に答える
0

共有ホスティング環境を使用していると仮定すると、それはおそらくアプリではありません。私は、共有ホスト上で完全に細かいコードが停止するのを見てきました。共有ホスティングの問題について私が知っている唯一の解決策は、ある種の管理されたアプリ ホスト、仮想プライベート サーバー (管理されているかどうかに関係なく)、または専用のサーバー ボックスを取得することです。このタイプのサービスは、共有ホスティングよりも高価です。

Windows 向けのホスティングの推奨事項については、申し訳ありませんが、何もありません。

于 2008-12-02T18:39:20.153 に答える