存档

‘Dian团队’ 分类的存档

CrazyDo
浏览器解释HTML时最耗时的部分是Reflow(回流),而当JS操作DOM的时候就会引发浏览器的Reflow,因此减少操作DOM的次数可以提高性能。
当需要操作DOM时,比如在一个div中添加n个div,我们可能这样操作:
var ctrl = document.getElementById("mainContainer");
for (var i = 0; i < 100; i++) {
    var child = document.createElement("div");
    ctrl.appendChild(child);
}
或者
var ctrl = document.getElementById("mainContainer");
var inner = ""
for (var i = 0; i < 100; i++) {
    inner += "<div></div>";
}
ctrl.innerHTML = inner;
乍一看,第一种方法直接操作DOM,省去了HTML->DOM的Parse过程,但是每次执行appendChild,就要Reflow一次,而第二种方法,相当于一次性操作DOM,只有一次Reflow,而且目前大部分浏览器对于Parse的过程都有优化,因此性能开销十分小。实测添加10000个div,第一种方法在160ms左右,第二中方法只要50ms左右。
———————————————–
spllot:如果我没记错的话,使用innerHTML,有些情况下是不怎么好的.能不能分析下使用innerHTML的好处与坏处
———————————————-
joehust:更复杂的情况呢?我比较喜欢用innerHTML直接设置,不过有人提醒过我说有一部分我写的代码太慢了,换成了分步的dom操作,
是否在所有情况下都是直接修改innerHTML更快呢?
———————————————
CrazyDo:一般来说,如果innerHTML里面嵌套关系过于复杂的时候建议先createElement创建儿子节点,然后在其中appendChild加入孙子节点,以此类推,最后将儿子节点加入父亲节点,这样在Firefox下也是一次Reflow,但是IE下似乎还是多次Reflow。
———————————————
joehust:很多时候再构造页面的时候其实是先将内容拼好,再append到某个节点下面去,在拼接过程中应该是不会有reflow的,这个时候用dom语句去构造就会省去parse html的过程,速度应当快些,如果是对已经呈现出来的页面进行修改的话可以考虑先将其hide,或者移除,等修改完成后再添加回去,这样可以避免修改的过程中发生reflow,从而提高效
率吧

268 次浏览 | 没有评论
四 15th, 2010 | Filed under Dian团队

henix
在很多地方都会用到 JVM 参数,比如你运行 ant check-style,跑挂了,抛了个OutOfMemory 错误。这时你上网搜索,他们会告诉你,应该修改 ANT_OPTS 环境变量,加上“-Xmx512m”。
再比如 JBoss 或 tomcat 都有启动脚本(startup.bat等),里面也用到 JVM 参数。还有Eclipse 的 eclipse.ini 中也可以加入 JVM 参数。灵活使用这些 JVM 参数可以使我们的 Java 程序获得更好的性能。
=== 常用参数 ===
-server
一定要作为第一个参数,会使JVM启动速度变慢,但会显著提升JVM性能
-Xms64m
设置初始 Heap 大小,使用的最小内存
-Xmx1024m
设置最大 Heap 大小
-Xss256k
设置每个线程的 Stack 大小
-XX:MaxPermSize=128M
设置最大永久区大小,永久保存区用于存放Class信息和元信息
=== GC(垃圾回收)参数 ===
Sun HotSpot JVM 通常使用的 GC 算法是分代回收。即把对象按生命周期不同分为年轻代和年老代。新的对象会先生成在Young Area,在几次 GC 以后,如果没有收集到,就会逐渐升级到Tenured Area。
Sun JVM 默认的回收器称为 serial collector ,即串行回收,我们也可以使用多线程并发回收来提高效率。需要注意的是,在单核的机器上,使用默认的回收器可能会更好。
-XX:+UseParNewGC
为年轻代对象使用并发回收,会缩短年轻代对象的回收时间
-XX:+UseConcMarkSweepGC
为年老代使用并发回收
-XX:+UseParallelGC
该收集器和 UseConcMarkSweepGC 是互相排斥的,为新生代使用并行清除,年老代使用单线程Mark-Sweep-Compact的垃圾收集器。
=== 其他参数 ===
-XX:CompileThreshold=100
该值表示编译之前必须调用方法的次数。HotSpot JVM 使用 JIT(Just-In-Time Compilation, [...]

308 次浏览 | 没有评论
四 14th, 2010 | Filed under Dian团队
标签:

NIO即new io.主要是采用通道机制来提高文件读取速度。以下为一个简单的读取文本文
件的例子:
public String readTxtFile(String path) throws IOException {

long start = System.currentTimeMillis();

//设置缓冲区的大小

final int BUFFER_SIZE = 0×900000;

String content = "";

// 创建一个文件输入流

FileInputStream fis = new FileInputStream(path);

// 获得该输入流的通道

FileChannel fc = fis.getChannel();

// 创建一个字节缓冲区

ByteBuffer bb = ByteBuffer.allocate(BUFFER_SIZE);

// 将字节序列从此通道读入给定的缓冲区

fc.read(bb);

// 反转此缓冲区。首先将限制设置为当前位置,然后将位置设置为 0

bb.flip();

// 获得缓冲区中剩余元素数,并创建相应的字节数组

byte[] bytes = new byte[bb.remaining()];

[...]

301 次浏览 | 没有评论
四 12th, 2010 | Filed under Dian团队, Java笔记

经过了团庆以及后续的收尾工作,一切又开始回到了正常的生活状态。团庆上真可谓是全民皆兵,全部在站队员都出动了还觉得人手不够,更多的人一直都是在默默无闻的工作,团庆的成功少不了任何一员。团庆上见到了很多老队员,感觉十分的温馨,真的有种家一样的感觉。很快自己也要离开团队了,这最后的时间争取为团队多做点事情吧。
晚会的照片有点模糊,不过还是来两张吧:

开场舞:逐日青春

华尔兹

布场之后抓紧时间休息的队员

344 次浏览 | 2 条评论
四 7th, 2010 | Filed under Dian团队
标签:

明天就是期盼已久的团庆了,预祝团庆一切顺利!4月4日晚上7点,华中科技大学韵苑体育馆前列队欢迎,哈哈!趁早睡觉去了,明天要忙一天

384 次浏览 | 3 条评论
四 3rd, 2010 | Filed under Dian团队

最近没啥事,也没啥好写的,随便来点,免得有人认为偶不写博客了。
Dian团队的8周年团庆即将举行,最近天天在练舞,真的是腰酸腿疼。正好还有一周的时间,肯定会很精彩。
昨天居然收到信产部的电话,确认我是不是域名备案的本人,现在CN域名真的是半死不活的,每日一站的域名(dailysite.cn)用着很痛苦,但是丢了又可惜。
昨天拿电脑放音乐,放着放着居然莫名其妙的关机了,而且按电源键没反应,怎么都开不了机。华硕的本本号称坚若磐石,质量也不见得怎么样。在网上一搜才发现原来有那么多用华硕的人遇到过这个问题。把所有能拔的拔掉,能拆的拆下来,最近放个半天,重新插电源就又能开机了。。。。难道寝室小强太多了?

221 次浏览 | 没有评论
三 28th, 2010 | Filed under Dian团队
标签:

今天终于找到了吃饭的感觉。学校的饭菜是越来越难吃了,导致偶的饭量越来越小,也越来越挑食了。今天一早起来去领驾照,8点出发,坐了两个小时的车到达目的地,然后又坐了两个小时车回来。到学校的时候将近12点了,12点半要排练节目,于是匆匆扒了两口饭,相当于没吃就出发了。
排练的节目是为团队的8周年团庆准备的,这老师也忒狠了点,一个半小时的训练比踢场球还累。当时真叫一个饿啊~~~还要不停地蹦来蹦去。下午回到寝室稍微吃了点东西,然后直接睡到了7点钟。起来到饭堂吃饭,都是些剩菜了,偶居然还添了两次饭,突然觉得学校的饭菜也不是那么难吃。看来以后还是得多运动运动了。

336 次浏览 | 4 条评论
三 19th, 2010 | Filed under Dian团队, 生活点滴

终于要回家了,下次见面就是虎年了!昨晚参加完团队的年终茶话会,节目十分精彩,今年可以说是众多新星闪耀啊,节目一个比一个要好看。苦苦等了一天,居然还没有人上传昨晚的照片,想拿几张出来分享一下都不行,可惜啊。
上午去看了电影《孔子》,也是团队组织的。电影的感觉还行,不过感觉去电影院看这类电影还是有点破费~~~倒是电影之后的自助餐吃的很Hi,吃得太饱了^_^
要回去了,将有一个月的时间不能上网。可能来访的朋友我无法及时回访了,留言也不能及时的话请见谅,过年回来加倍补上。
感觉自己越来越匆忙了,每次回去都有很多事情要做,有很多同学朋友要见,可是每次回去都只能见一部分人,而且都是来去匆匆。在家的时间也很短,不能好好陪陪老妈~~~看来下学期还得再找个机会回去一趟。
不扯那么多口水话了,收拾东西要紧。祝各位新年快乐!虎年吉祥!虎虎生威!
闪人了!明年见!

723 次浏览 | 12 条评论
二 4th, 2010 | Filed under Dian团队, 生活点滴
标签:

团队的8周年团庆筹备火热进行中,为了更好的宣传团队,特推出Dian团队8周年团庆专题网站。第一次制作WordPress主题,再一次感受到WordPress的强大。可惜静态页面不是我设计的(我也设计不出来),下次自己也给自己的博客做个主题玩玩。
团队的论坛也上线了,可惜只对内部人员开放注册。

1,481 次浏览 | 2 条评论
十二 16th, 2009 | Filed under Dian团队

昨天接受zluyuer的建议,给种子杯的网站加上了WordPress评论插件wordpress thread comment。把种子杯的网站建好之后没怎么关心过,才发现使用的主题评论功能比较差,连回复都没有,只有发表新评论,可能主题的作者也是想着和评论插件wordpress thread comment 一起用的。wordpress thread comment可以将回复的评论嵌套显示,使得评论工整易读,是一个十分实用的插件。
我现在的博客也用的wordpress thread comment评论插件,原来的评论回复和引用功能被我删掉了。
附上插件的下载地址:http://wordpress.org/extend/plugins/wordpress-thread-comment/

1,543 次浏览 | 11 条评论
十一 16th, 2009 | Filed under Dian团队, 博客站务