【问题标题】:as3, gamedev, file access, uncompressing is very slowas3,gamedev,文件访问,解压很慢
【发布时间】:2014-05-17 13:39:07
【问题描述】:

说明
~~~~~~~~~~~
我有大约 100 个文件,代表大约 450 个月来加载游戏。我没有解析任何东西,只是加载原始数据(ByteArray)。

问题
~~~~~~~
在使用 File 的桌面上,加载所有资源需要 46 秒。

我认为 100 文件访问可能是问题的原因。 所以我尝试使用一个独特的存档,并使用 Fzip 解压缩它,这样可以减少 100 个文件访问。加载整个档案需要 61 秒,多 15 秒。 (正常解压需要4.7秒,不知道FZIP需要多少时间和资源,我还没查源码)

在配备 SSD 硬盘的桌面环境中,我发现这段时间出奇的长。你可以想象它在移动设备上慢了 10 倍,这对用户体验来说是一个真正的问题。

问题:
~~~~~~~~~
Flash 是否有某种磁盘访问速度限制?
有什么办法可以解决我的问题吗?

【问题讨论】:

  • 您是在异步加载这些文件吗?加载程序还是文件?
  • 出于好奇,您能否使用 7zip 或类似软件解压缩桌面上的所有文件,并告诉我们需要多少时间?它可能比您的应用程序更快,但值得知道它可以完成的绝对最快速度是多少。例如,如果它需要 15 秒,那么您可能无能为力来缩短所需时间。
  • @JoshJanusch 就像我在原帖中所说:“正常减压需要 4.7 秒”
  • @AndreyPopov 同步,我正在使用 File。
  • 使用getTimer() 跟踪打开、读取和关闭文件所需的时间(分别针对每个操作)。我认为这与溢出或某事有关,特别是如果您继续引用它们。这样您就可以知道哪种操作成本最高。如果你确定减压需要更少的时间,那么阅读可能会更多..

标签: actionscript-3 flash disk-access


【解决方案1】:

好的,我终于得到了压缩和快速加载... 5 秒,450 个月,adl 三岁的安卓平板电脑上 8-20 秒。

.

简答:
~~~~~~~~~~~
我发现纯属偶然,我没有深入研究原因。

ditto -c -k --rsrc --extattr --keepParent public public.zip 
zip public.zip public

.

长答案:
~~~~~~~~~~~
在我的原始帖子和原始压缩测试中,我基本上使用的是使用同上的 mac 压缩,并且再次使用 adl 花了 45 秒。

我很好奇尝试使用 zip 和 0 压缩,所以在不删除旧存档的情况下,我做了一个简单的 zip 命令,存档大小没有改变一英寸,突然我得到了 5 秒的加载时间......

然后我删除了存档,并重新执行了简单的 zip 命令,存档约为 450 个月,而游戏根本不会加载存档。

我做了几次测试,只是重现了上面的三个案例...... 我很确定这一切背后都有一个简单的解释,我认为可能只用一个命令行而不是两个命令行来管理所有这些。 现在我只是没有时间深入解释,但我可能稍后再回来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多