Board logo

标题: ZT 关于javascript程序内存占用的一个有趣的实验 [打印本页]

作者: sky5    时间: 2008-4-2 14:53     标题: ZT 关于javascript程序内存占用的一个有趣的实验

关于javascript程序内存占用的一个有趣的实验

[阿赖原创文章,转贴务必指明文章链接出处!]

今天看到BBS上有朋友又发贴提到javascript目录树控件程序内存占用无法释放的问题,让我想起了前段时间在网上看到过一篇关于js内存管理机制的文章,内容忘得差不多了,只隐约记得:刷新页面不会导致javascript回收内存,最小化窗口会导致内存回收!于是我决定做个测试观察一下最小化窗口内存会不会真的被回收!过程如下:

按ctrl+alt+del组合键,打开"任务管理器",进入“进程”页(为了使用便于观察,点选项菜单,将“前端显示”选上(前面打勾))。打开http://www.9499.net主页,同时注意观察cpu和内存在变化的iexplorer.exe进程,在主页左边的目录树菜单点鼠标右键,选择"刷新",同时观察cpu和内存变化的iexplorer.exe进程,确定该进程就是我们要跟踪的进程。重复刷新几次,每次刷新相应进程的内存使用都会增加2~3M,接下来点最小化,注意观察ie进行的内存使用是不是一下子跌了下来,我这里看到的是一下子从50M跌到1M左右,然后又回升!
这个试验验证了:刷新页面不会导致javascript回收内存,最小化窗口会导致内存回收!




Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=208019


虽然很老的文章了,但是还是转一下
作者: sky5    时间: 2008-4-3 04:00     标题: 还是关于JS的

该死的JS真的很无语,居然完全支持正则表达式的lookahead,但是却完全不支持lookbehind,

什么事情应该都成双成对出现的,有正面就有反面,有矛就有盾,

但js就像女儿国清一色都是女儿身,却没有一个男儿,你说这不是很可笑的事情么,就像碰到了物理学家找不到实证的磁单极一样

虽然如此,国外还是有强人给万恶的js做了个“变性手术”,英文很简单,就不翻译了,呵呵


http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript

对不起,转帖很麻烦,我只弄了第一种方法,有兴趣的朋友自己上去看其他的

[ 本帖最后由 sky5 于 2008-4-3 04:20 编辑 ]
作者: sky5    时间: 2008-4-3 04:01

Unlike lookaheads, JavaScript doesn't support regex lookbehind syntax. That's unfortunate, but I'm not content with just resigning to that fact. Following are three ways I've come up with to mimic lookbehinds in JavaScript.

For those not familar with the concept of lookbehinds, they are zero-width assertions which, like the more specific \b, ^, and $ metacharacters, don't actually consume anything — they just match a position within text. This can be a very powerful concept. Read this first if you need more details.

Mimicking lookbehind with the replace method and optional capturing groupsThis first approach is not much like a real lookbehind, but it might be "good enough" in some simple cases. Here are a few examples:

  1. // Mimic leading, positive lookbehind like replace(/(?<=es)t/g, 'x')
  2. var output = 'testt'.replace(/(es)?t/g, function($0, $1){
  3.         return $1 ? $1 + 'x' : $0;
  4. });
  5. // output: tesxt

  6. // Mimic leading, negative lookbehind like replace(/(?<!es)t/g, 'x')
  7. var output = 'testt'.replace(/(es)?t/g, function($0, $1){
  8.         return $1 ? $0 : 'x';
  9. });
  10. // output: xestx

  11. // Mimic inner, positive lookbehind like replace(/\w(?<=s)t/g, 'x')
  12. var output = 'testt'.replace(/(?:(s)|\w)t/g, function($0, $1){
  13.         return $1 ? 'x' : $0;
  14. });
  15. // output: text
复制代码

[ 本帖最后由 sky5 于 2008-4-3 04:11 编辑 ]
作者: 52twb    时间: 2008-4-3 07:40

终于看到熊猫的大作了。
作者: sky5    时间: 2008-4-3 08:37

不是我写的啊,只是引用

[ 本帖最后由 sky5 于 2008-4-3 08:43 编辑 ]
作者: 81635631    时间: 2008-4-3 10:22

看不懂。。。。




欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/) Powered by Discuz! 7.2