测量响应时间ASP.net

时间:2014-10-10 12:07:03

标签: c# sql asp.net web-services response-time

我有一个ASP Web服务(.asmx),它只是获取带有查询字符串的SOAP请求,在数据库上执行它,并返回数据或受影响的行。 我想记录服务器在数据库的日志表中回复所需的响应时间,但我不知道如何获取请求和回复时间,因此我可以计算它。我现在的方式是WebMethod,我获取当前时间,然后执行查询,然后获取时间跨度并将其保存在DB上。但是,这不会测量服务器在返回对象并将其序列化为XML时所花费的序列化时间,因此它小于实际响应时间。这是我的代码:

[WebMethod]
public Table Select(string environment, string username, string password, string query)
{
    DateTime start = DateTime.Now;

    Table table = Methods.Select(environment, username, password, query);

    string constring = ConfigurationManager.ConnectionStrings[environment].ConnectionString;
    OracleConnection con = new OracleConnection(String.Format(ConfigurationManager.ConnectionStrings[environment].ConnectionString, username, password));
    con.Open();
    TimeSpan time = DateTime.Now - start;
    OracleCommand cmd = new OracleCommand("INSERT INTO WS_REQUESTS VALUES (TIMESTAMP'" + start.ToString("yyyy-MM-dd HH:mm:ss.ffffff") + "', '" + username + "', '" + query + "', " + time.TotalMilliseconds + ", " + errorflag + ", '" + message + "')", con);
    int rows = cmd.ExecuteNonQuery();
    con.Close();
    return table;
}

表是我为数据创建的DTO,而Methods是我具有查询功能的类。 任何人都可以告诉我如何尽可能准确地测量响应时间?最好的是尽可能简单,我的服务中包含代码,最多可以嵌入到我的服务中,因此它是独立的,而不是我需要在我的服务器上安装的其他性能测量工具。感谢。

0 个答案:

没有答案