苏飞论坛

标题: C#关于string的IndexOf和Contains的性能测试 [打印本页]

作者: 站长苏飞    时间: 2015-2-3 09:59
标题: C#关于string的IndexOf和Contains的性能测试
以下是测试代码大家一看就明白了

[C#] 纯文本查看 复制代码
 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string url = "http://www.0398jobs.com/index.htm";
        private void Form1_Load(object sender, EventArgs e)
        {

        }
        //
        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = string.Empty;
            DateTime st = DateTime.Now;
            for (int i = 0; i < 10000; i++)
            {
                if (url.IndexOf("job.com") > 0 || url.IndexOf("jobs.com") > 0)
                {

                }
            }
            label1.Text = (DateTime.Now - st).Milliseconds.ToString();
        }
        //Contains
        private void button2_Click(object sender, EventArgs e)
        {
            label1.Text = string.Empty;
            DateTime st = DateTime.Now;
            for (int i = 0; i < 10000; i++)
            {
                if (url.Contains("job.com") || url.Contains("jobs.com"))
                {

                }
            }
            label1.Text = (DateTime.Now-st).Milliseconds.ToString();
        }
    }


看测试后的效果

IndexOf执行五次
[C#] 纯文本查看 复制代码
38毫秒
36 毫秒
37毫秒
36毫秒
36毫秒
39毫秒


Contains执行五次
[C#] 纯文本查看 复制代码
3毫秒
2 毫秒
2毫秒
3毫秒
2毫秒
2毫秒


差距这么大我就不多说了,大家一看就明白
Contains的性能要远远的超出IndexOf
测试源码下载
(, 下载次数: 46)