字符串压缩性能

先上源码:


 1 using System;
2 using System.Diagnostics;
3 using System.IO;
4 using System.IO.Compression;
5 using System.Text;
6
7 namespace TestCompress
8 {
9 class Program
10 {
11 static void Main(string[] args)
12 {
13 string source = "{\"users\":[{\"id\":1662047260,\"idstr\":\"1662047260\",\"screen_name\":\"SinaAppEngine\",\"name\":\"SinaAppEngine\",\"province\":\"11\",\"city\":\"8\",\"location\":\"北京 海淀区\",\"description\":\"Sina App Engine(简称SAE),简单高效的分布式Web服务开发、运行平台。\\n新浪云平台Sina App Engine官网(...\",\"url\":\"http://sae.sina.com.cn\",\"profile_image_url\":\"http://tp1.sinaimg.cn/1662047260/50/5633919323/1\",\"profile_url\":\"saet\",\"domain\":\"saet\",\"weihao\":\"\",\"gender\":\"m\",\"followers_count\":193403,\"friends_count\":155,\"statuses_count\":4288,\"favourites_count\":16,\"created_at\":\"Thu Nov 19 14:47:16 +0800 2009\",\"following\":false,\"allow_all_act_msg\":true,\"geo_enabled\":true,\"verified\":true,\"verified_type\":2,\"status_id\":3496335523491079,\"allow_all_comment\":true,\"avatar_large\":\"http://tp1.sinaimg.cn/1662047260/180/5633919323/1\",\"verified_reason\":\"Sina App Engine官方微博\",\"follow_me\":false,\"online_status\":0,\"bi_followers_count\":116,\"lang\":\"zh-cn\"},{\"id\":1936344094,\"idstr\":\"1936344094\",\"screen_name\":\"微游戏平台\",\"name\":\"微游戏平台\",\"province\":\"11\",\"city\":\"8\",\"location\":\"北京 海淀区\",\"description\":\"微游戏平台——\\n新浪微博官方游戏平台\\[email protected]微游戏平台 使命\\n1、成为合作伙伴了解微游戏最快速、最便捷的通道;\\n2、为微游戏合作伙伴的交流沟...\",\"url\":\"http://game.weibo.com\",\"profile_image_url\":\"http://tp3.sinaimg.cn/1936344094/50/5605578586/1\",\"profile_url\":\"pingtaiv\",\"domain\":\"pingtaiv\",\"weihao\":\"\",\"gender\":\"m\",\"followers_count\":2332,\"friends_count\":84,\"statuses_count\":288,\"favourites_count\":0,\"created_at\":\"Tue May 17 17:05:03 +0800 2011\",\"following\":false,\"allow_all_act_msg\":true,\"geo_enabled\":true,\"verified\":true,\"verified_type\":2,\"status_id\":3490521190033344,\"allow_all_comment\":true,\"avatar_large\":\"http://tp3.sinaimg.cn/1936344094/180/5605578586/1\",\"verified_reason\":\"新浪微游戏开放平台官方微博\",\"follow_me\":false,\"online_status\":0,\"bi_followers_count\":65,\"lang\":\"zh-cn\"},{\"id\":1949305184,\"idstr\":\"1949305184\",\"screen_name\":\"微博桌面\",\"name\":\"微博桌面\",\"province\":\"11\",\"city\":\"8\",\"location\":\"北京 海淀区\",\"description\":\"【微博桌面】是新浪微博官方的微博客户端软件。\\r\\n方便你在电脑上随手发微博、与好友聊话题哦!\\r\\n下载地址:http://desktop.weibo.com/\",\"url\":\"http://desktop.weibo.com\",\"profile_image_url\":\"http://tp1.sinaimg.cn/1949305184/50/5635814569/1\",\"profile_url\":\"weibodesktop\",\"domain\":\"weibodesktop\",\"weihao\":\"\",\"gender\":\"m\",\"followers_count\":810622,\"friends_count\":252,\"statuses_count\":265,\"favourites_count\":158,\"created_at\":\"Fri May 20 13:15:49 +0800 2011\",\"following\":false,\"allow_all_act_msg\":true,\"geo_enabled\":true,\"verified\":true,\"verified_type\":2,\"status_id\":3495731698678415,\"allow_all_comment\":true,\"avatar_large\":\"http://tp1.sinaimg.cn/1949305184/180/5635814569/1\",\"verified_reason\":\"新浪微博桌面客户端官方账号\",\"follow_me\":false,\"online_status\":0,\"bi_followers_count\":128,\"lang\":\"zh-cn\"},{\"id\":1642909335,\"idstr\":\"1642909335\",\"screen_name\":\"微博小秘书\",\"name\":\"微博小秘书\",\"province\":\"11\",\"city\":\"8\",\"location\":\"北京 海淀区\",\"description\":\"申请认证请看:http://weibo.com/verify;认证疑问请私信给@微博客服;客服电话:4000 960 960(个人) 4000 980 980(企业)\",\"url\":\"http://blog.sina.com.cn/sinat\",\"profile_image_url\":\"http://tp4.sinaimg.cn/1642909335/50/5597136100/0\",\"profile_url\":\"sinat\",\"domain\":\"sinat\",\"weihao\":\"\",\"gender\":\"f\",\"followers_count\":48747791,\"friends_count\":1035,\"statuses_count\":2534,\"favourites_count\":7,\"created_at\":\"Sun Aug 30 00:14:07 +0800 2009\",\"following\":false,\"allow_all_act_msg\":true,\"geo_enabled\":false,\"verified\":true,\"verified_type\":3,\"status_id\":3495628988141995,\"allow_all_comment\":true,\"avatar_large\":\"http://tp4.sinaimg.cn/1642909335/180/5597136100/0\",\"verified_reason\":\"新浪微博官方账号\",\"follow_me\":false,\"online_status\":0,\"bi_followers_count\":439,\"lang\":\"zh-cn\"},{\"id\":1781387491,\"idstr\":\"1781387491\",\"screen_name\":\"微博iPhone客户端\",\"name\":\"微博iPhone客户端\",\"province\":\"11\",\"city\":\"8\",\"location\":\"北京 海淀区\",\"description\":\"欢迎来到@微博iPhone客户端 官方微博!\\n在这里:\\n轻松更新浏览你关注的好友、娱乐明星、专家发布的最新微博;即时获取国内外热点新闻,...\",\"url\":\"http://news.sina.com.cn/wap/wbclient.html\",\"profile_image_url\":\"http://tp4.sinaimg.cn/1781387491/50/5597471732/0\",\"profile_url\":\"58351\",\"domain\":\"weiboiphone\",\"weihao\":\"58351\",\"gender\":\"f\",\"followers_count\":10949498,\"friends_count\":71,\"statuses_count\":605,\"favourites_count\":128,\"created_at\":\"Thu Jul 22 12:12:30 +0800 2010\",\"following\":false,\"allow_all_act_msg\":true,\"geo_enabled\":true,\"verified\":true,\"verified_type\":2,\"status_id\":3495946085897922,\"allow_all_comment\":true,\"avatar_large\":\"http://tp4.sinaimg.cn/1781387491/180/5597471732/0\",\"verified_reason\":\"新浪微博iPhone客户端客服帐号\",\"follow_me\":false,\"online_status\":0,\"bi_followers_count\":53,\"lang\":\"zh-cn\"},{\"id\":1904178193,\"idstr\":\"1904178193\",\"screen_name\":\"微博开放平台\",\"name\":\"微博开放平台\",\"province\":\"11\",\"city\":\"8\",\"location\":\"北京 海淀区\",\"description\":\"【平台公告】自2012年10月15日起,微博开放平台将禁止“累计使用人数小于10,000”的应用,使用V1接口。为保证应用正常运行,请开...\",\"url\":\"\",\"profile_image_url\":\"http://tp2.sinaimg.cn/1904178193/50/5610154048/0\",\"profile_url\":\"openapi\",\"domain\":\"openapi\",\"weihao\":\"\",\"gender\":\"f\",\"followers_count\":57991,\"friends_count\":31,\"statuses_count\":1003,\"favourites_count\":2,\"created_at\":\"Mon Dec 27 17:56:46 +0800 2010\",\"following\":false,\"allow_all_act_msg\":false,\"geo_enabled\":true,\"verified\":true,\"verified_type\":2,\"status_id\":3494540847151431,\"allow_all_comment\":false,\"avatar_large\":\"http://tp2.sinaimg.cn/1904178193/180/5610154048/0\",\"verified_reason\":\"新浪微博开放平台\",\"follow_me\":false,\"online_status\":0,\"bi_followers_count\":26,\"lang\":\"zh-cn\"}],\"next_cursor\":0,\"previous_cursor\":0,\"total_number\":6}";
14 NewLifeCore_Compress(source);
15 System_Compress(source);
16 Console.ReadKey();
17 }
18
19 static void NewLifeCore_Compress(string source)
20 {
21 Stopwatch time = new Stopwatch();
22 time.Start();
23 for (int i = 0; i < 10000; i++)
24 {
25 byte[] buf = Encoding.UTF8.GetBytes(source);
26 buf = buf.Compress();
27 }
28 time.Stop();
29 Console.WriteLine("NewLifeCore_Compress\t压缩10000次,耗时:{0}毫秒。", time.ElapsedMilliseconds);
30 }
31
32 public static void System_Compress(string source)
33 {
34 Stopwatch time = new Stopwatch();
35 time.Start();
36 for (int i = 0; i < 10000; i++)
37 {
38 byte[] dataCompressed = null;
39 byte[] buf = Encoding.UTF8.GetBytes(source);
40 using (MemoryStream ms = new MemoryStream())
41 {
42 Stream s = new GZipStream(ms, CompressionMode.Compress);
43 s.Write(buf, 0, buf.Length);
44 s.Close();
45 dataCompressed = (byte[])ms.ToArray();
46 }
47 }
48 time.Stop();
49 Console.WriteLine("System_Compress\t\t压缩10000次,耗时:{0}毫秒。", time.ElapsedMilliseconds);
50 }
51
52 }
53 }

运行结果:

另外,压缩率也基本一致。

代码中的Compress是一个扩展方法,来源于NewLife.Core的IOHelper中的方法。

时间: 2024-10-03 04:24:18

字符串压缩性能的相关文章

条件、循环、函数定义、字符串操作练习

注意标准库的两种导入与使用方式,建议大家采用<库名>.<函数名>的方式. 对前面的代码进行优化,用for,while,if,def实现: 用循环画五角星 1 import turtle 2 3 turtle.fillcolor("red") 4 turtle.begin_fill() 5 for i in range(5): 6 turtle.forward(100) 7 turtle.right(144) 8 turtle.end_fill() 用循环画同心圆

sql常用格式化函数及字符串函数

一.常用格式化函数 1.日期转字符串 select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') //2017-09-18 22:41:50 YYYY:年(4和更多位) MM:月份号(01-12) DD:一个月里的日(01-31) HH24:一天的小时数(00-23) MI:分钟(00-59) SS:秒(00-59) 2.字符串转日期 select to_date('2017-09-18','YYYY-MM-DD') //2017-09-

PHP 格式化字符串sprintf()

字符串函数 sprintf() 函数把格式化的字符串写入一个变量中 函数说明:sprintf(格式, 要转换的字符串)  参考PHP手册 返回: 格式化后的字符串 举例: 如:保留2位小数, $str = '99.9';echo sprintf('%01.2f', $str);结果为:99.90 echo round($str, 2); 结果为:99.9

js中字符串的替换

定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法 stringObject.replace(regexp/substr,replacement)参数 描述 regexp/substr 必需.规定子字符串或要替换的模式的 RegExp 对象. 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象. replacement 必需.一个字符串值.规定了替换文本或生成替换文本的函数. 返

数组、字符串、集合

数组与集合的转换.数组与字符串的转换 ========数组变集合 String[] arr = {"abc","cc","kkkk"}; //把数组变成list集合有什么好处? /* 可以使用集合的思想和方法来操作数组中的元素. 注意:将数组变成集合,不可以使用集合的增删方法. 因为数组的长度是固定. contains. get indexOf() subList(); 如果你增删.那么会产生UnsupportedOperationExcepti

《Java编程思想》第十三章 字符串

<Java编程思想>读书笔记 1.String作为方法的参数时,会复制一份引用,而该引用所指的对象其实一直待在单一的物理位置,从未动过. 2.显式地创建StringBuilder允许预先为他指定大小.如果知道字符串多长,可以预先指定StringBuilder的大小避免多次重新分配的冲突. 1 /** 2 * @author zlz099: 3 * @version 创建时间:2017年9月1日 下午4:03:59 4 */ 5 public class UsingStringBuilder {

SpringMVC后台使用对象接受参数字符串转日期

在springMVC配置文件中加入: <bean id="dateConvert" class="com.iomp.util.DateConvert"/> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property

python判断字符串,str函数isdigit、isdecimal、isnumeric的区别

s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小写s.isupper() 所有字符都是大写s.istitle() 所有单词都是首字母大写,像标题s.isspace() 所有字符都是空白字符.\t.\n.\r 判断是整数还是浮点数a=123b=123.123 >>>isinstance(a,int)True>>>isinstance(b,floa

【自动化__持续集成】___java___字符串转数组

一.代码如下 package www.wujianbotwo; public class Demo08 { public static void main(String[] args) { // TODO Auto-generated method stub String content= "wujianbo,wujianob,33333"; String[] ud= content.split(",");//将字符串分段成一个数组 for(int i=0; i&l