作者cochiachang (藍玥)
看板Flash
標題[問題] 關於as吃資源程度
時間Sat Nov 8 00:05:20 2008
最近做了一個flash圖像聊天室
發現當人數多時 有時會偶然性的發生錯誤
會有"影片中有一個Flash Player會讓執行速度變慢..."
的警語出現
通常這是在我單機測試時 寫出無限迴圈才會出現的糟糕物= =
不知道是發生了什麼嚴重問題所以變這樣..(嗚..我是嫩咖)
但是一般測試只要人數在一般狀況
其實出現這樣錯誤訊息的次數現階段還不多
聊天室可以執行很久都以正常狀況存在著..
所以想問一下下列指令吃記憶體程度
onMouseOver、onMouseOut、onPress
這幾個指令是否會很吃資源呢?
他們有反應 當速度變慢時 打字會變很慢
我在想 這問題可能是我設了按鍵監聽?(為了讓他們按enter可以自動發話)
想問一下 設定按鍵監聽會是一件很吃資源的事嗎?
還有...我在有些函數裡面 有建立變數
不知道是否當這函數結束後 由函數產生的變數會自己消失
還是說會一直存在著占記憶體?所以時間久了會自動變糟糕...?
想問問有做過flash聊天室的人
有什麼關於lag要注意的事項嗎?
在做之前其實已經規劃了很多了
但是完成後還是有許多lag問題 可能是因為我們背景與人偶娃娃用了許多動畫
有關於上述的錯誤訊息 代表著怎樣的狀況呢?
是否慢慢的占用記憶體也會產生
或是突然的無窮迴圈會發生這樣的問題呢?
發生此錯誤訊息的電腦系統為vista
我自己本身還沒有遇到過...(我用xp)
不知道是否有知道有什麼與flash相關的教學文章嗎>_<
感恩不盡喔!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.95.137
1F:推 cjcat2266:Flash管理記憶體的方式是garbage collector 11/08 00:08
2F:→ cjcat2266:Google一下可以查到GC的運作機制 11/08 00:08
3F:→ cjcat2266:簡單來說,當有一個物件你不需要使用的時候 11/08 00:08
4F:→ cjcat2266:可以讓裝載它reference的變數值為null 11/08 00:08
5F:→ cjcat2266:當一個物件不再被任何一個變數裝載refernce的時候 11/08 00:09
6F:→ cjcat2266:GC就會在需要記憶體的時候去把該物件從記憶體上消除掉 11/08 00:09
7F:→ cjcat2266:因為它再也沒有辦法被存取到,所以它佔用著記憶體 11/08 00:10
8F:→ cjcat2266:至於你說的function裡面宣告變數,這叫local variable 11/08 00:10
9F:→ cjcat2266:一離開function之後該變數就不見了 11/08 00:11
10F:→ cjcat2266:如果該變數是某個物件唯一的reference 11/08 00:11
11F:→ cjcat2266:那該物件也會在適當時機被GC處理掉 11/08 00:11
12F:→ cochiachang:因為我聊天室存取人數是使用二維陣列 全域一維 11/08 00:12
13F:→ cjcat2266:當你畫面上的視覺元素不需要的時候,記得把它remove掉 11/08 00:13
14F:→ cjcat2266:不然光是alpha = 0或者visible = false還是有佔用記憶體 11/08 00:13
15F:→ cjcat2266:然後就是那些event listener是event發生才會被呼叫 11/08 00:14
16F:→ cjcat2266:定義好之後沒有事件發生不會消耗資源,不用擔心 11/08 00:14
17F:→ cochiachang:也全域二維 用迴圈產生二維 那這樣執行完這個會刪掉嗎 11/08 00:15
18F:→ cjcat2266:全域變數不會自動被刪掉,不需要的時候需要你自己delete 11/08 00:15
19F:→ cochiachang:我說錯了 是local= =名稱搞錯 我想到錯亂抱歉 11/08 00:15
20F:→ cochiachang:很謝謝你 我去查一下garbage collector的運作 11/08 00:16
21F:推 pm2001:CPU太廢也會出現這個訊息 11/08 00:18