String类型的赋值的一个坏习惯【优化Adobe Flash Platform 的性能.pdf阅读笔记】



ActionScript 3.0 中 getSize() 方法显示对象在内存中占用的字节数。

所有原始类型(String 除外)在内存中都是占用 4 – 8 个字节:

var a:Number;
trace(getSize(a));// 输出: 8
var b:int;
trace(getSize(b));// 输出: 4
var c:uint;
trace(getSize(c));// 输出: 4
var d:Boolean;
trace(getSize(d));// 输出: 4
var e:String;
trace(getSize(e));// 输出: 4


String 类型分配的存储量基于 String 的长度

var str:String;
trace(getSize(str));// 输出: 4
str = "";
trace(getSize(str));// 输出: 24
str = "文字内容";
trace(getSize(str));// 输出: 32


然后想起自己的一个代码书写习惯

var str:String="";
str += "<font color='#ffffff'>";
str += "文字内容";
str += "</font>";


为避免String类型的变量在没有赋值的情况下就被调用时发生“无法访问空对象引用的属性或方法“,所以我习惯在声明String类型的变量时习惯写成 var str:String = “”;

来看一下内存分配情况:

var str:String = "";
trace( getSize(str) );// 输出: 24
str += "<font color='#ffffff'>";
trace( getSize(str) );// 输出: 24
str += "文字内容";
trace( getSize(str) );// 输出: 88
str += "</font>";
trace( getSize(str) );// 输出: 168

实际上还有下面这两种写法

var str:String = "<font color='#ffffff'>文字内容</font>";
trace(getSize(str) );// 输出: 96
var str:String = "<font color='#ffffff'>" +
 "文字内容" +
 "</font>";
trace(getSize(str) );// 输出: 96

很显然第后面两段代码执行起来更省资源,所以字符串内容尽量写成一行,字符串内容较多时每行的代码用+号结尾,声明变量时尽量不赋值。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值