回答
它在哪里窒息?首先,我将开始做一些分析。
简介 “服务器”:
- 多少时间,它正在做的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