您的位置:首页 > 其它

.net 性能测试2--变量和数据对象的使用

2009-04-23 17:00 399 查看
1,测试变量和Datarow的访问

代码一:

private void button1_Click_1(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();
            DateTime d1 = DateTime.Now;
            for (int i = 0; i < 20; i++)
            {
                try
                {
                    string strSql = "select top 100 * from t_csp_vesselschedule ";
                    DataTable dt = db.ExecuteDataSet(CommandType.Text, strSql).Tables[0];
                    foreach (DataRow d in dt.Rows)
                    {
                        string a1 = d["id"].ToString();
                        for (int m   = 0; m < 1000; m++)
                        {
                            sb.Append(a1);
                        }
                       
                    }
                }
                catch(Exception ex)
                {
                    throw ex;
                }
            }
            DateTime d2 = DateTime.Now;
            TimeSpan t1=d2-d1;
            label1.Text = t1.TotalMilliseconds.ToString();
            textBox3.Text = label1.Text;
            
        }


代码二:

private void button3_Click(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();
            DateTime d1 = DateTime.Now;
            for (int i = 0; i < 20; i++)
            {
                try
                {
                    string strSql = "select top 100 * from t_csp_vesselschedule ";
                    DataTable dt = db.ExecuteDataSet(CommandType.Text, strSql).Tables[0];
                    foreach (DataRow d in dt.Rows)
                    {
                        //string a1 = d["id"].ToString();
                        for (int m = 0; m < 1000; m++)
                        {
                            sb.Append(d["id"].ToString());
                        }

                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            DateTime d2 = DateTime.Now;
            TimeSpan t1 = d2 - d1;
            label2.Text = t1.TotalMilliseconds.ToString();
            textBox4.Text = label2.Text;
        }




测试结果:

代码段一的时间546.875

代码段二的时间3890.625

2,测试变量和datareader的访问,替换对应的数据库对象后测试结果如下:

531.25;

2578.125

总结:

在对同一数据库字段访问不频繁的情况下建议使用原对象,否则请先赋值给变量;

代码段2的耗时不稳定,有的时候代码段2的本身耗时相差2倍
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: