stringbuilder100次拼装字符串所消耗的时间

xiezhou927 2008-09-07 04:52:51
写两个方法分别计算string和stringbuilder100次拼装字符串所消耗的时间

刚学C#不是很会,请教下
...全文
223 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
brallow 2008-09-07
  • 打赏
  • 举报
回复

public bool TestResult(string s)
{
return s.Length>=9 && s.SubString(0,3).ToUpper()=="HBR" && s.SubString(s.Length-3,3).ToUpper()=="EXE";
}


在任何你要测试的地方,假设你要测试的字符串名称为:strResult;

if(TestResult(strResult))
{
Console.WriteLine("符合");
}
else
{
Console.WriteLine("不符合");
}
xiezhou927 2008-09-07
  • 打赏
  • 举报
回复
还有个小问题:
先判断输入字符串的Length>=9,再判断头三个字母==“HBR”,后三个字母==”exe”
(注意大小写),满足条件就 输出“符合”,不满足就输出“匹配失败”

怎么弄啊
brallow 2008-09-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wdgphc 的回复:]
用StopWatch类好像更准一些.
[/Quote]
从没用过,我研究一下。谢谢老大!
JeffChung 2008-09-07
  • 打赏
  • 举报
回复
那我改成SrtingBuilder的,嘿嘿
DateTime timeStart = DateTime.Now;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100; i++)
{
sb.Append("People");
}
DateTime timeEnd = DateTime.Now;
TimeSpan sp = timeEnd - timeStart;
Console.Write("拼装字符串所用的时间为:{0}",sp);
wdgphc 2008-09-07
  • 打赏
  • 举报
回复
用StopWatch类好像更准一些.
brallow 2008-09-07
  • 打赏
  • 举报
回复
HOHO,临时写了一个只是大概结果。其中未准确的度量循环的开销:
输出的结果是:

633564039022343750
633564039111875000
633564039112031250
D12:89531250
D23:156250
D12/D23:573


输出的值分别是:
开始时间(Ticks)
第一项测试结束时间(第二项测试开始时间)(Ticks)
第二项测试结束时间(Ticks)
D12:第一次测试的总时长
D23:第二次测试的总时长
D12/D23:第一次测试时间比上(除以)第二次测试时间

我之所以使用Ticks时间是使用普通的时间格式无法表示出这么精确的时间差。对了上面的测试结果是我进行了10000次拼装的结果。100次根据看不出区别。


class Program
{

public static string A;
public static StringBuilder BA;

public static void Test1(int K)
{
string ret = "";
for (int i = 0; i < K; i++)
{
ret += A;
}
//ret是拼装结果
}

public static void Test2(int K)
{
string ret = "";
for (int i = 0; i < K; i++)
{
BA.Append(A);
}
ret = BA.ToString();
//ret是拼装结果
}


static void Main(string[] args)
{

//A为100个字母K;
A = new String('K', 100);
BA = new StringBuilder();

int K = 10000;

//输出当前时间
long l1, l2, l3;
l1 = DateTime.Now.Ticks;
Console.WriteLine(l1.ToString());
Test1(K);

l2 = DateTime.Now.Ticks;
Console.WriteLine(l2.ToString());

Test2(K);
l3 = DateTime.Now.Ticks;
Console.WriteLine(l3.ToString());

long d12, d23;
d12 = l2 - l1;
d23 = l3 - l2;

Console.WriteLine("D12:{0}", d12);
Console.WriteLine("D23:{0}", d23);

Console.WriteLine("D12/D23:{0}", d12 / (float)d23);


Console.ReadLine();
}
}
xiezhou927 2008-09-07
  • 打赏
  • 举报
回复
***************************************************
DateTime timeStart = DateTime.Now;
String s = "Chinese";
for (int i = 0; i < 100; i++)
{
s += "People";
}
DateTime timeEnd = DateTime.Now;
TimeSpan sp = timeEnd - timeStart;
Console.Write("拼装字符串所用的时间为:{0}",sp);
******************************************************
这样写可以吗?
wang51346 2008-09-07
  • 打赏
  • 举报
回复
DateTime.Now
内容概要:本文围绕“分布式电源接入配电网承载力评估方法”的研究展开,重点复现了一项基于双层鲸鱼优化算法求解的核心学术论文,结合Matlab编程实现,对IEEE 33节点配电网系统进行建模与仿真分析。研究旨在科学评估在大规模分布式电源接入背景下配电网的承载能力,构建了综合考虑系统运行安全性、电能质量、网络损耗及电压稳定性等多重约束条件的优化评估模型,并采用高效的智能优化算法进行求解,有效提升了评估精度与计算效率,为新能源并网规划、电网扩容改造及运行决策提供了可靠的理论依据和技术支撑。该资源不仅提供完整的代码实现,还深入解析算法设计逻辑与模型构建流程,具有较强的科研复现价值和工程参考意义。; 适合人群:具备电力系统分析基础理论知识和Matlab编程能力,从事新能源并网、智能配电网规划、电力系统优化、分布式能源管理等方向的研究生、科研人员及电力行业工程技术人员。; 使用场景及目标:① 学习并掌握分布式电源接入对配电网影响的量化评估方法;② 深入理解双层优化架构与智能算法(如鲸鱼优化算法)在复杂电力系统问题中的应用机制;③ 获取可运行、可调试的Matlab代码资源,用于科研论文复现、课题研究仿真、课程设计或工程项目前期论证。; 阅读建议:此资源以核心论文的技术路线为基础,强调理论与实践相结合。建议读者在阅读过程中结合电力系统潮流计算、约束优化等基础知识,逐步理解模型构建思路,并动手运行与调试所提供的Matlab代码,通过参数调整与结果分析深化对算法性能与工程适用性的认知,从而真正实现从“看懂”到“掌握”的转化。

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧