国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C# string.format、string.connect和+=運(yùn)算 效率計(jì)算

2019-11-17 02:59:11
字體:
供稿:網(wǎng)友

C# string.format、string.connect和+=運(yùn)算 效率計(jì)算

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace StringFormatEfficiency{    class PRogram    {        static void Main(string[] args)        {            string format = "my {0} is {1}";            string name = "name";            string zhangyaolin = "zhangyaolin";            string my = "my ";            string iss = " is ";            DateTime  start = new DateTime();            DateTime end = new DateTime();            string aa = null;                       int maxcount = 10e6;            for (int ii = 0; ii < 10; ii++)            {                start = DateTime.Now;                for (int i = 0; i < maxcount; i++)                {                    aa = string.Format(format, name, zhangyaolin);                }                end = DateTime.Now;                TimeSpan ts1 = end - start;                Console.WriteLine(ts1.Milliseconds.ToString());                //-------------------------                start = DateTime.Now;                for (int i = 0; i < maxcount; i++)                {                    aa = string.Concat(my, name, iss, zhangyaolin);                }                end = DateTime.Now;                TimeSpan ts2 = end - start;                Console.WriteLine(ts2.Milliseconds.ToString());                //--------------------------                start = DateTime.Now;                for (int i = 0; i < maxcount; i++)                {                    aa = my + name + iss + zhangyaolin;                }                end = DateTime.Now;                TimeSpan ts3 = end - start;                Console.WriteLine(ts3.Milliseconds.ToString());                Console.WriteLine("time1(format) : time2(connect) : time3(Operator) =  {0} : {1} : 1", (1.0 * ts1.Milliseconds / ts3.Milliseconds).ToString(“F3”), (1.0 * ts2.Milliseconds / ts3.Milliseconds).ToString(“F3”));                Console.WriteLine();            }        }    }}

測試結(jié)果:

531109125time1(format) : time2(connect) : time3(operator) = 4.248 : 0.872 : 1531109109time1(format) : time2(connect) : time3(operator) = 4.872 : 1.000 : 1515125109time1(format) : time2(connect) : time3(operator) = 4.725 : 1.147 : 1531109109time1(format) : time2(connect) : time3(operator) = 4.872 : 1.000 : 1531125109time1(format) : time2(connect) : time3(operator) = 4.872 : 1.147 : 1531109109time1(format) : time2(connect) : time3(operator) = 4.872 : 1.000 : 1531109109time1(format) : time2(connect) : time3(operator) = 4.872 : 1.000 : 1531109109time1(format) : time2(connect) : time3(operator) = 4.872 : 1.000 : 1531125109time1(format) : time2(connect) : time3(operator) = 4.872 : 1.147 : 1531109125time1(format) : time2(connect) : time3(operator) = 4.248 : 0.872 : 1原因: string.format和string.connect都執(zhí)行了新地址分配和入棧操作,不過string.format會對每個(gè)入棧字符檢查判斷,當(dāng)有{/d+}這種替換字符出現(xiàn)時(shí),會將{/d+}對應(yīng)的字符序列入棧;而string.connect只做入棧,不做入棧字符的檢查和判斷。入棧操作完成時(shí),做出棧操作,將棧內(nèi)字符有序的放入堆里。理論上來說,string.format操作的字符串越長,效率越低。注:/d+表示一個(gè)數(shù)字,如string format = "my {0} is {1}";中的0和1


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岳池县| 徐水县| 滨州市| 调兵山市| 上饶市| 板桥市| 游戏| 苗栗市| 通河县| 丘北县| 上饶市| 淳安县| 勃利县| 天镇县| 离岛区| 革吉县| 柳州市| 青浦区| 镇安县| 莫力| 临澧县| 敦化市| 太保市| 蒙山县| 青海省| 朝阳市| 金坛市| 寻乌县| 横峰县| 鹿泉市| 明溪县| 沁源县| 孟州市| 乌审旗| 稻城县| 驻马店市| 济阳县| 新竹市| 云林县| 大竹县| 巴塘县|