Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flash调试器中的伪随机崩溃-我的坏,或住所';s_Apache Flex_Actionscript 3_Flash - Fatal编程技术网

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