Apache flex Flash调试器中的伪随机崩溃-我的坏,或住所';s
Apache flex Flash调试器中的伪随机崩溃-我的坏,或住所';s,apache-flex,actionscript-3,flash,Apache Flex,Actionscript 3,Flash,我正在从事一个大型的双AS3/Flex项目(一些部分是纯AS3,其他部分是Flex),我经历了很多Flash调试器崩溃
这些崩溃并不是完全随机的——当我在应用程序中执行某些操作时,我似乎可以让它们以更高的一致性发生。然而,同时,它们也不是一致可重复的——有时一组操作会导致我的应用程序崩溃,而其他时候,相同的步骤执行得很好,不会崩溃
我有两个问题(措辞谨慎,以消除我的个人偏见:)
这些崩溃是由于我的编码实践还是Adobe的Flash调试器造成的
1a。如果这些崩溃是由于我的编码造成的,我该如何着手
我正在从事一个大型的双AS3/Flex项目(一些部分是纯AS3,其他部分是Flex),我经历了很多Flash调试器崩溃
这些崩溃并不是完全随机的——当我在应用程序中执行某些操作时,我似乎可以让它们以更高的一致性发生。然而,同时,它们也不是一致可重复的——有时一组操作会导致我的应用程序崩溃,而其他时候,相同的步骤执行得很好,不会崩溃
我有两个问题(措辞谨慎,以消除我的个人偏见:)
这些崩溃是由于我的编码实践还是Adobe的Flash调试器造成的
1a。如果这些崩溃是由于我的编码造成的,我该如何着手解决不可重复的问题P
当我在一个网站上部署我的应用程序并通过Flash Player访问它时,我应该期待同样的崩溃发生,还是Flash Player比Flash Debugger更具弹性
非常感谢大家!:)
-丰富的
更新:
谢谢大家的回复!更多背景信息:
我正在使用相当好的DeMonster Debugger()和一个自制的探查器类来监视我的应用程序的内存/处理器紧张。我有理由相信崩溃与内存/处理器负担无关,因为我可以(在某种程度上始终如一地)让应用程序在执行后的30秒内以很小的压力崩溃
由于我的应用程序的体系结构,内存泄漏变得非常明显。因此,我能够/被迫消除至少大部分内存泄漏。虽然我承认可能仍然存在内存泄漏,但内存使用率非常低,我可以让应用程序崩溃,因此这似乎不太可能有关联
现在,有关实际违规代码的一些详细信息:
应用程序的撤销机制(XMLManager.as)通过存储对模型的更改(用XML表示)来工作。要撤消更改,应用程序将基于存储在XMLManager.as中的XML重新加载(重新实例化)关键组件。为了使应用程序(在某种程度上一致)崩溃,我可以执行一组操作,这些操作都与应用程序中的某个类(Line.as类)相关。执行这些操作不会导致任何问题,但撤消它们会导致应用程序崩溃
其中最令人困惑的是,XMLManager类存储的XML在崩溃场景和无崩溃场景中实际上是相同的。另一个令人困惑的方面是,崩溃场景仅由一行代码引入:
xml+='text=“'+text+'”//不会导致撞车
xml+='text=“”+tf.text+'”//导致撞车
“text”是一个字符串,用于镜像tf.text的内容(tf是一个TextField)。该行位于line.toXml()中,该方法用于将一行转换为其各自的XML以存储在XMLManager中。因此,所有这一切令人困惑的是,使用tf.text最终会导致撤销机制崩溃,即使存储在XML机制中的XML没有实质性改变
为了让事情更加混乱,我可以在开始撤销过程之前输出完整的XML。这样,当Flash崩溃时,我有一个导致它崩溃的XML记录。如果我使用完全相同的XML(手动检查后,它看起来正常)并将其作为初始状态反馈到应用程序中,则不会发生错误,Flash也不会崩溃
太混乱了!:)
对不起,解释得太长了;也许你能明白为什么我在这里不知所措
(请注意,我已经找到了一种解决方法——我可以随时更新“text”和“tf.text”的内容,而不是直接在代码toXml()中使用“tf.text”。这种方法理论上会导致使用相同的XML,但性能良好,不会崩溃……)
有什么想法吗
Adobe的Flash调试器,调试器不应该崩溃,但它是
这也是代码可能不太稳定的迹象
我个人发现FlashPlayer有更高的容忍度,我发现了
太好了,有这么多未经仔细编程的Flash应用程序,
其中包含内存泄漏,FP仍在运行,尽管存在所有的残酷
Adobe的Flash调试器,调试器不应该崩溃,但它是
这也是代码可能不太稳定的迹象
我个人发现FlashPlayer有更高的容忍度,我发现了
太好了,有这么多未经仔细编程的Flash应用程序,
其中包含内存泄漏,FP仍在运行,尽管存在所有的残酷
我认为flash调试器实际上可能比普通播放器更不容易崩溃,因为它的运行速度比普通版本稍慢。我已经构建了一些非常大的flash应用程序,我没有经历过您描述的那种不稳定,我的代码中没有任何错误
要解决您的问题,我建议:
1) 配置您的应用程序。看看你有没有内存泄漏之类的。()
2) 使用removeEventListeners处理完所有事件侦听器后,请清理它们
3) 尽可能重用对象
4) 监视帧速率以查看速度减慢的位置:
在没有看到正在运行的代码的情况下,除了模糊的建议之外,很难给出任何其他建议。崩溃发生时运行的代码是否特别重?它在做一些严肃的数字运算吗 我认为flash调试器实际上可能比普通播放器更不容易崩溃,因为它的运行速度比普通版本稍慢。我已经构建了一些非常大的flash应用程序,我没有经历过您描述的那种不稳定,我的代码中没有任何错误
要解决您的问题,我建议:
1) Profil