Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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
Actionscript 3 mxmlc-警告:无法解析损坏的数据-一旦项目达到一定大小?_Actionscript 3_Apache Flex_Jvm_Mxmlc_Asunit - Fatal编程技术网

Actionscript 3 mxmlc-警告:无法解析损坏的数据-一旦项目达到一定大小?

Actionscript 3 mxmlc-警告:无法解析损坏的数据-一旦项目达到一定大小?,actionscript-3,apache-flex,jvm,mxmlc,asunit,Actionscript 3,Apache Flex,Jvm,Mxmlc,Asunit,我有一个长时间运行的项目,它被编译为发布的模块,但是测试套件可能会运行每个模块的所有测试 这个项目相当大,目前大约有1250个测试用例(类),总共有4000个类。这是一个asunit3项目,因此所有测试用例都列在一个AllTests.as文件中 很明显,我并不是一直运行所有的测试——运行套件需要几分钟,所以大部分时间我都在运行集中测试,但一天有几次我会运行完整套件,包括集成测试等等 在我最后几个小时的工作中,我不再能够成功地构建和运行整个套件。我们有一个脚本,允许我们使用包名或类名过滤测试,因此

我有一个长时间运行的项目,它被编译为发布的模块,但是测试套件可能会运行每个模块的所有测试

这个项目相当大,目前大约有1250个测试用例(类),总共有4000个类。这是一个asunit3项目,因此所有测试用例都列在一个AllTests.as文件中

很明显,我并不是一直运行所有的测试——运行套件需要几分钟,所以大部分时间我都在运行集中测试,但一天有几次我会运行完整套件,包括集成测试等等

在我最后几个小时的工作中,我不再能够成功地构建和运行整个套件。我们有一个脚本,允许我们使用包名或类名过滤测试,因此我可以测试包['modules']或测试包['com']等等。我还可以排除包-testallexcept['utils']等等

我可以运行测试的任何和所有子集,但如果我尝试测试整个集合,我会得到:

Warning: Failed to parse corrupt data.
如果我只筛选出几个类,那么我就能够编译和打开swf,但它只是一个白框,实际上并不运行测试。如果我再过滤一些,那么一切都很好。我过滤哪一个似乎无关紧要——只要我拿出大约15个测试用例,一切都很好(尽管我还没有找到确定/不确定之间的确切数字)

我正在使用
-benchmark
进行编译,并获得以下输出:

Initial setup: 34ms
start loading swcs 7ms Running Total: 41ms
Loaded 45 SWCs: 253ms
precompile: 456ms
Files: 4013 Time: 16087ms
Linking... 91ms
SWF Encoding... 833ms
/Users/me/Documents/clients/project/bin/ProjectShellRunner.swf (4888318 bytes)
postcompile: 927ms
Total time: 17312ms
Peak memory usage: 413 MB (Heap: 343, Non-Heap: 70)

mxmlc finished compiling bin/ProjectShellRunner.swf in 18 seconds
由于最高内存使用量超过了mxmlc中的默认堆,我将其增加到

VMARGS="-Xmx1024m -Dsun.io.useCanonCaches=false " 
这似乎没有什么帮助

asunit3和projectsprouts的设置方式将所有测试集中在一个AllTests.as文件中。这现在超过2500行,并且导入了所有1250个测试用例

在类的数量、类的长度、一个类中导入的数量等方面,我有没有遗漏什么?或者除了java的VM堆之外,我还可以更改其他任何设置?我正在使用Flex 4.2 mxmlc编译器

显然,我可以通过一个脚本来解决这个问题,运行一系列子集,而不是单个套件,但我想了解为什么会发生这种情况

有什么线索吗


基于推特Qs的一些额外信息:

  • 我正在运行MacOSX10.8.5
  • mxmlc正在通过命令行运行
  • 我已经尝试强制它使用32位运行时-没有改变
  • 我已将mxmlc切换为无头模式,也没有任何更改

根据推特的问题提供一些额外信息:我相信这是Mac OS X下mxmlc中的一个bug。您可以将代码库切换到Windows 7来尝试一下吗?嗨,Akhil,很遗憾,我没有访问Windows开发环境的权限。现在,我已经归档了一个过时的模块,这使它回到了阈值以下,现在它正在重新编译。很奇怪。