| 聂磊's profile学习园地BlogLists | Help |
|
学习园地学习可是件严肃的事情,来不得半点马虎! January 14 Flex/AS 3 memory leak从目前情况看,Flex 3(AS3)存在严重的memoy leak(内存泄露)问题,这些问题中一部分可以合适的编码方式来避免,还有一些问题目前只有等待Flex SDK更新了。
感觉Flex 的商业应用目前只能在初级阶段。 列举一些产生memoy leak的情景。 (1)Event ListenersListening to parent objects does cause memory leaks e.g. override protected function mouseDownHandler(…):void { you can: 1.Removing the addEventListener (when dispose). systemManager.removeEventListener(“mouseUp”, mouseUpHandler); 2. Use of weak reference listeners override protected function mouseDownHandler(…):void { These do not block garbage collection(generally do not cause memory leaks):
weak reference event listener e.g. someObject.addEventListener(MouseClick.CLICK, handlerFunction, false, 0, true); Self References e.g. this.addEventListener(MouseClick.CLICK, handlerFunction); childObject event listener e.g.
建议对所有addEventListener都要removeEventListener,或是使用Weak References .
Reference :http://blogs.adobe.com/aharui/2007/03/garbage_collection_and_memory.html http://www.dreamingwell.com/articles/archives/2008/05/understanding_m.php
(2) static memberse.g. Class (或MXML)中有: public static var _eventService : MyService=new MyService(); 在dispose时,需要设置: _eventService =null;
(3)module (未解决)moduleLoader unloadModule后 ModuleInfo 并不会被GC. Garbage Collection in a MultiCore Modular Pipes Application 这篇文章介绍了一种GC策略,感觉对于ModuleInfo 的GC无效。
(4)CSS Stylemodule 中如果使用了shell的CSS定义或是<mx:Style> 这样的定义,那么这个module将不能GC. 弹出的窗口应该是同样的结果. 解决方法,使用动态CSS文件 module init中 StyleManager.loadStyleDeclarations("css/myStyle.swf"); module dispose中 StyleManager.unloadStyleDeclarations("css/myStyle.swf");
(5)TextInput/Textarea(未解决)如果module中有window使用了TextInput/Textarea控件,不点击没有问题,只要点上去,那么很遗憾了,module和所在窗体将不能被GC. 这个BUG非常严重,目前还没有解决方法。 memory leak when using TextInput and TextArea when click the keyboard这里面附加的解决方法无效。 通过profiler分析,应该和Focusmanager有关,只有一点击就不会释放。
(6)CursorManager.setCursor使用了 cursorID = CursorManager.setCursor(iconClosed); dispose时要 CursorManager.removeCursor(cursorID);
(7)Bitmap如果使用Bitmap,结束时需要调用其dispose方法,否则内存消耗巨大。
(8) 其他binding也疑似有memor leak 问题。 ...... 感觉Flex/AS 3离商业开发还有很长的路要走 January 04 S900两种硬启动方法1 开机状态下按下 音量down+确认键+reset键(笔槽内的小红点),进入三色屏,三色屏提示1,2,3选择,按音量up键 便可进入reset。之后机子自动重启一次,然后屏幕调整,请注意:使用手写笔,按照屏幕提示在十字键位置点击,不可乱按!否则永远进不了下一步! 方法2 关机状态下 按下 音量down+确认键+电源键,进入三色屏,后操作同上。 June 23 Flex使用XMLSocket与后台通信一;flash 直接 使用 XMLSocket 链接 Java 后台(或其他后台)。直接打开flash,不在网页里头的话,就不需要考虑安全性的问题了,当然这不实用。只是个简单的XMLSocket的例子。 mxml文件代码 <?xml version="1.0" encoding="utf-8"?> private function configureListeners(dispatcher:IEventDispatcher):void{ private function connectHandler(event:Event):void{ } private function dataHandler(event:DataEvent):void{ } ..... ]]> 代码限于篇幅不完整,但是基本的都有了,我这里 首先 创建了一个 xmlsocket,添加事件监听后, 我首先执行的是 socket.connect(host, port); ,这句是连接到指定的端口,它连接成功后的回调事件是Event.CONNECT,可以看到 我在 Event.CONNECT 的 事件里面 socket.send("<test/>\n"); 这是 端口连接成功后 尝试发送 消息,后面跟着判断 是否连接成功, 如果连接成功,再发送 真正的消息。消息发送成功后的回调事件是 DataEvent.DATA 。 至于java后台那边只是做一个 监听,处理 socket,就不再讲述了, 2,网页里的flash 使用xmlsocket。 网页里面就需要考虑安全性的问题,因为默认是不允许访问的,但是我们给他一个安全文件让它可以访问,具体步骤是; 还是看 上面的代码,socket.connect(host, port); 这句话,其实质是 向java 后台发送了一个 内容为 <policy-file-request/> 的字符串, 所以 只要接收到这个消息, 那说明是 flash 第一次 访问到 端口。java我们这样写; import java.io.BufferedReader; public class Listener extends Thread{ } 在看 上面写的 mxml 里面的代码, 在 第一次 connect 之后 我还做了个 socket.send("<test/>\n"); tomcat默认密码在X:\tomact5.5\conf\tomact_user.xml
Xml代码
< ?xml version=' 1.0' encoding=' utf-8'?> <tomcat-users> <role rolename=" tomcat"/> <role rolename=" role1"/> <role rolename=" manager"/> <role rolename=" admin"/> <user username=" tomcat" password=" tomcat" roles=" tomcat"/> <user username=" both" password=" tomcat" roles=" tomcat,role1"/> <user username=" role1" password=" tomcat" roles=" role1"/> 后面加上一条就可以了 <user username=" admin" password=" admin" roles=" admin,manager"/> < /tomcat-users> 后加的是意思是设置admin和manager的用户名和密码为admin MySQL 1130 错误登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" 【转】Flash Socket安全问题的全面解析1、问题描述 Mysql的2003错误在一台新的server上装了MySQL,发现本地可以访问,远程无法访问,报2003错误。
尝试了若干种解决方案,发现是Windows的firewall的原因,注意是操作系统的防火墙,
不是杀毒软件的防火墙!
解决方案:
1.关掉Windows Firewall,此举有风险,操作需谨慎!
2.Add Exceptions Port May 14 如何改变MySQL数据文件路径首先在数据库里看一下数据库里当前数据文件的存放路径: mysql> show variables like '%dir%'; 如果你觉得这个路径可以的话,就不用去修改了。如果觉得不满意的话,也可以修改。 1:service mysql stop 关闭数据库 2:vi /etc/rc.d/init.d/mysql 3: 把 datadir=/var/lib/mysql 这里改成你想要的。就OK了 4:service mysql start April 17 python中的字符串操作#Python字符串操作 '''14.翻转字符串''' 本文来自: (www.91linux.com) 详细出处参考:http://www.91linux.com/html/article/program/python/20081127/13983.html |
|||||
|
|