“整数类.到文本()”执行效率提升至原来的2.5倍以上

原创 2007年10月15日 10:33:00

有朋友在论坛上提到(http://bbs.dywt.com.cn/dispbbs.asp?boardID=148&ID=136092&page=1),“易语言.飞扬”中“整数转文本”执行效率较差,大约是C#的六分之一(他同时还提到“易语言.飞扬”中“文本转整数”执行效率是C#的10倍以上)。

我们通过优化系统类库中的“整数类.到文本()”,将“整数转文本”的执行效率提升至原来的2.5倍以上,大幅缩小了与C#的差距。同时,“文本转整数”仍然保持着对 C# 10倍以上的速度优势。

“整数类.到文本()”还慢在哪里呢,不妨分析一下:

1、需要创建并返回一个新的文本对象,涉及一次内存分配和内存拷贝

2、循环调用“整数类.到文本()”时,每次循环产生的文本对象都要立刻释放(而C#可能是在整个循环结束后甚至程序结束后才统一释放所有对象)

由此可见,还有很多可供优化的空间。

需要强调的几点是:

1、我们认为“易语言.飞扬”的执行速度“足够快”(http://blog.csdn.net/efdev/archive/2007/08/23/1756079.aspx),足以满足大多数人的日常需求。

2、就目前的测试阶段而言,我们认为,“易语言.飞扬”能够“正确的运行”比“更快的运行”更加重要。

3、当我们认为有必要进行速度优化的时候,我们可以做的很好。

 

易语言 到整数 到文本

.版本 2 .子程序 到整数_从文本, 整数型, 公开 .参数 内容, 文本型 .局部变量 文本长度, 整数型 .局部变量 临时计次, 整数型 .局部变量 取出的字符, 整数型 .局部变量 结果内容...
  • u012607841
  • u012607841
  • 2014年07月23日 21:58
  • 998

2.5亿个整数中找出不重复的数代码实现

对于在2.5亿个整数中找出不重复的数(内存不足以容纳这2.5亿个整数),已经有众多前辈给出了比较详尽的算法描述,但在具体实现上现有的例子则比较简单,规模偏小。昨天生成2.5亿个数之后,开始读文件统计,...
  • jovon
  • jovon
  • 2014年03月18日 20:10
  • 1291

2.5亿个整数中找出不重复的整数 bitmap

在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。     方案1:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,...
  • qian_348840260
  • qian_348840260
  • 2015年03月04日 10:04
  • 768

海量数据一,从2.5亿个正整数中找到不重复的整数

题目:从2.5亿个正整数中找到不重复的整数。 解答: int有4个字节,32位bit,最多可表示2322^{32}个正整数,即4G个正整数(1G=230,1K=2101G=2^{30},1K=2^...
  • shuxiangxingkong
  • shuxiangxingkong
  • 2016年09月19日 00:11
  • 1518

(百例编程)85.回文数的形成

题目:任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步聚,则最终可得到一个回文数。 /* 85.cpp 题目:任取一个十进制整数,将其倒过来后与原来的整数相加, ...
  • csy981848153
  • csy981848153
  • 2013年01月23日 22:30
  • 522

在2.5亿个整数中找出不重复的整数的C++实现源代码

6、在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。   方案1:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进...
  • brk1985
  • brk1985
  • 2014年01月24日 13:06
  • 1713

浮点数强制转换为整数高效替代方法

//浮点数转换为整数 == [i=(int)f],但效率会比其高出很多 inline void F_T_I( const float f, int i ) { _asm { fld f; ...
  • cherishpart
  • cherishpart
  • 2015年11月23日 16:17
  • 619

大数据:查找不重复的整数

//题目:在2.5亿个整数中找出不重复的整数,内存不足以容纳这2.5亿个整数。 #include #include /* 每个数分配2bit,00表示不存在,01表示出现一次,10表示多次...
  • Leeboy_Wang
  • Leeboy_Wang
  • 2013年05月27日 16:55
  • 4672

运用bitmap解决一道海量数据处理面试题:在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。

采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存2^32 * 2 bit=1 GB内存,还可以接受。然后扫描这2.5亿个整数,查看B...
  • jirongzi_cs2011
  • jirongzi_cs2011
  • 2013年07月15日 13:01
  • 2363

Ubuntu/CentOS下如何将普通用户提升到root权限

转载自http://blog.csdn.net/chenjieb520/article/details/7316268 笔者最近在开发一个项目的时候,需要用到一个包(libpcap),利用这个包...
  • xxdddail
  • xxdddail
  • 2013年08月16日 11:49
  • 3842
收藏助手
不良信息举报
您举报文章:“整数类.到文本()”执行效率提升至原来的2.5倍以上
举报原因:
原因补充:

(最多只允许输入30个字)