代码驿站移动版
频道导航
HTML/Xhtml
CSS
JavaScript
HTML5
PHP教程
ASP.NET
正则表达式
AJAX
ThinkPHP
Yii
MySQL
MariaDB
Oracle
MongoDB
Redis
DedeCMS
PHPCMS
帝国CMS
WordPress
Discuz
其它CMS
Zend Studio
Sublime
Notepad
Dreamweaver
Windows
Linux
Nginx
Apache
IIS
CentOS
Ubuntu
Debian
网站优化
工具资源
PHP源码
ASP.NET源码
其它源码
图标素材
按钮素材
字体素材
DedeCMS模板
帝国CMS模板
PHPCMS模板
WordPress模板
Discuz!模板
单页模板
开发软件下载
服务器软件下载
广告投放
联系我们
版权申明
软件编程
网页前端
移动开发
数据库
服务器
脚本语言
PHP代码
JAVA代码
Python代码
Android代码
当前位置:
主页
>
软件编程
>
.NET代码
>
ASP.NET(C#) String, StringBuilder 与 StringWriter性能比较
时间:2021-07-21 08:23:08 | 栏目:
.NET代码
| 点击:次
直观认识:正面交锋
性能测试1:StringBuilder
第 1 轮测试:用时 312.5 毫秒
第 2 轮测试:用时 421.875 毫秒
第 3 轮测试:用时 453.125 毫秒
第 4 轮测试:用时 421.875 毫秒
第 5 轮测试:用时 453.125 毫秒
性能测试2:StringWriter
第 1 轮测试:用时 406.25 毫秒
第 2 轮测试:用时 453.125 毫秒
第 3 轮测试:用时 421.875 毫秒
第 4 轮测试:用时 437.5 毫秒
第 5 轮测试:用时 437.5 毫秒
性能测试3:String(1/100 数据量)
第 1 轮测试:用时 12406.25 毫秒
您注意到了吗?
String 连接方式在只有 1/100 数据的测试下,使用时间30倍于 StringBuilder。因此,基于性能的考量,我们绝不推荐这种方式。而 StringBuilder 较之 StringWriter 略胜一筹,具体的原因将在下文中分析。当然,测试存在误差,但足以说明事实。
StringWriter 与 StringBuilder:谁是强者
StringWriter 位于 System.IO 命名空间内,继承于 TextWriter。在 .Net Reflector 的反编译结果中显示,它的内部事实上是采用 StringBuilder 进行连接。无怪乎 StringWriter 会略逊一筹,它原来仅仅是 StringBuilder 的一个适配(可以称之为 Adapter 模式)。为什么 StringBuilder 拥有如此的效率?
您注意到了吗?
在许多地方,需要 StringWriter 而不是 StringBuilder,例如 XmlTextWriter。
StringBuilder:原因何在
关于 System.Text.StringBuilder 的研究,网上已有不少,其主要原理便是预先以非托管方式分配内存,保证文本的修改与扩张,不重新创建一个 String 对象。而 String 对象的创建,便是性能瓶颈所在。它的连接效率远超过 String,不过在少量的文本连接时,显然 String 编程时更方便些。
您可能感兴趣的文章:
C#中观察者模式的3种实现方式
ASP.NET获取MS SQL Server安装实例实现思路及代码
Repeater里switch的使用方法
C# winform编程中响应回车键的实现代码
使用C#获取远程图片 Form用户名与密码Authorization认证的实现
相关文章
12-15
Unity使用LineRender实现绘画功能
11-27
unity实现玻璃效果
11-30
在ASP.NET 2.0中操作数据之六:编程设置ObjectDataSource的参数值
10-31
用.NET做动态域名解析的方法示例
12-14
浅谈C#多线程简单例子讲解
JQuery
VUE
AngularJS
MSSql
MySQL
MongoDB
Redis
Linux
Tomcat
Nginx
网站首页
广告投放
联系我们
版权申明
联系站长