回答
它在哪裏窒息?首先,我將開始做一些分析。
簡介 「服務器」:
- 多少時間,它正在做的XML編碼?
- 需要多少時間才能完全寫入套接字?
簡介客戶:
- 是服用多少時間來閱讀從插座中的數據?
- 解碼XML需要多長時間?
親自爲這樣的事情,如果你能我會避免XML,和/或試圖偷懶,解碼XML(做到這一點,當你知道你需要它...所以你可以扔掉不浪費XML塊CPU週期如果你的程序越來越重)。
我會嘗試去原始套接字類http://www.adobe.com/livedocs/flash/9.0/main/00000318.html#wp128960和自定義數據包格式,其中每個索引包含相關數據的數組。在psudocode:
messageArray = [message type, arg0, arg1, arg2...];
所以你可能有這樣定義的「鼠標移動事件」:
MessageConstants.MOUSE_MOVE = 0; // or whatever id you want
messageArray = [MessageConstants.MOUSE_MOVE, mouseDeltaX, mouseDeltaY];
然後使用AMF http://en.wikipedia.org/wiki/Action_Message_Format通過線路來串行化數據。
希望這會有所幫助。
我根本無法觸及服務器,它使用標準協議(flosc)運行並可連接到多個服務器。令人驚訝的是,該應用程序僅花費大約5%的時間解析數據,絕大多數花費在渲染上。現在我開始懷疑是否所有事情都是從拋出所有東西的異常開始的。 – grapefrukt 2010-02-11 10:58:03
好的,是的,如果你沒有管理你的例外事件可能會破產。你使用的是Debug Player/Plugin ActiveX嗎?另外,我可能只是簡單地保留一個隊列,也許是n個事件的FIFO,然後將它們從flosc feed中推入並在處理它們時將其拉出。如果隊列的尺寸最大,則從任一端彈出一個(取決於最佳效果)。另一種選擇是根據事件的重要性給予所有事件類型的權重,也可以使用n項目的優先級隊列http://en.wikipedia.org/wiki/Priority_queue來獲取事件類型的權重。 – Jotham 2010-02-12 04:17:09
原來它實際上是一個異常,在我的代碼中被「更深入」拋出。一旦拋出異常,flash永遠不會被抓起來,只會持續得到更多的異常。 發生了什麼事情是,當應用程序獲得大量輸入時,它可能以錯誤的順序獲取觸摸事件,即。觸摸移動將在觸摸後到達。我的邏輯沒有處理這個,所以它嘗試更新那些不存在的東西,從而使用已經刪除的實例。但是一旦我找到它,這是一個簡單的解決方案。 – grapefrukt 2010-02-14 21:14:04
- 1. 閃存插槽策略
- 2. Qt信號和插槽xml
- 3. html5 websockets或閃存插槽在加載時激活?
- 4. YAML解析器窒息
- 5. 閃存XML錯誤
- 6. 閃存xml不會緩存
- 7. 當插槽存在時Qt連接「沒有這樣的插槽」
- 8. Qt轉發插槽/連接插槽到插槽?
- 9. 如何在Symfony 1.4插槽中禁用緩存動態信息
- 10. 獲取DIMM和CPU插槽信息
- 11. 動態xml讀取閃存
- 12. xml幀暫停閃存
- 13. Docgine 2在Postgres表列上窒息
- 14. 的Spring MVC模式窒息的ArrayList
- 15. 漸變剪輯看起來窒息無
- 16. ActiveResource在freebase json請求上窒息
- 17. 爲什麼python在numpy.core.ma上窒息?
- 18. TomEE窒息了很多@Asynchronous操作
- 19. ReadFully()有窒息的危險嗎?
- 20. iPhone自動佈局UIText窒息
- 21. 閃存的消息在MVC
- 22. CakePHP的3.0閃存消息
- 23. 閃存插座HTTP-POST例
- 24. 手機閃存插件
- 25. 插槽清洗
- 26. 紅移插槽
- 27. 如何處理不存在的插槽
- 28. 存儲插槽與多進程
- 29. CLOS插槽存取:讀不能寫
- 30. Qt的連接「沒有這樣的插槽」當插槽肯定是存在的
多點觸控...桌子......你是否正在研究新的蘋果產品? :) – 2010-02-09 13:35:30