回答
它在哪里窒息?首先,我将开始做一些分析。
简介 “服务器”:
- 多少时间,它正在做的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. html5 websockets或闪存插槽在加载时激活?
- 3. YAML解析器窒息
- 4. Qt转发插槽/连接插槽到插槽?
- 5. 如何在Symfony 1.4插槽中禁用缓存动态信息
- 6. 动态xml读取闪存
- 7. iPhone自动布局UIText窒息
- 8. ActiveResource在freebase json请求上窒息
- 9. Docgine 2在Postgres表列上窒息
- 10. 的Spring MVC模式窒息的ArrayList
- 11. 为什么python在numpy.core.ma上窒息?
- 12. CakePHP的3.0闪存消息
- 13. 闪存插座HTTP-POST例
- 14. 手机闪存插件
- 15. 插槽清洗
- 16. 红移插槽
- 17. 存储插槽与多进程
- 18. 闪存消息存储在哪里?
- 19. Qt信号插槽:信号已发送,但未插入插槽
- 20. QT信号/插槽
- 21. 连接QAction插槽
- 22. 信号和插槽
- 23. 查看Flash插槽
- 24. 插槽:BufferedReader readLine()块
- 25. 信号插槽TabWidget
- 26. PyQt - 插槽参数
- 27. QListview拖放插槽
- 28. qt插槽柯里
- 29. 闪存犯规像我Formtted XML
- 30. XML与闪存中的阵列
多点触控...桌子......你是否正在研究新的苹果产品? :) – 2010-02-09 13:35:30