Adobe Air for Windows 64位?

时间:2014-03-21 09:38:53

标签: actionscript-3 flex memory-management air

我们正在开发一些内存密集型的Adobe Air Desktop应用程序,有时会在Windows中超过32位1.3 Gb限制,并被操作系统清除。遗憾的是,我们无法从Flex Builder中找到任何选项以导出到Windows 64位。

似乎从Adobe论坛上有更多人对此功能感兴趣,Adobe似乎尚未承诺实施它。

如果有人遇到同样的问题并希望得到支持,请在Adobe论坛上投票:https://bugbase.adobe.com/index.cfm?event=bug&id=3011846

或者,任何处理内存密集型Adobe Air Desktop应用程序的提示都非常受欢迎。

4 个答案:

答案 0 :(得分:2)

AIR现在在Windows上支持64位,来自AIR 29: https://forums.adobe.com/thread/2452737 https://labs.adobe.com/downloads/air.html

它目前处于测试阶段,但我尝试了它,似乎显着提高了内存阈值。分配3GB +对我没有任何问题。

答案 1 :(得分:1)

也许有点晚了,但我在Mac上运行时没有遇到这个问题:)我们的应用程序曾经在操作系统开始交换大量文件之前就达到了7GB内存。

内存优化,例如处理BitmapData,异步加载数据(以允许垃圾回收)等可能会对您有所帮助。

答案 2 :(得分:1)

ActionScript在其内存管理方面存在潜在的设计缺陷。这取决于机器的不同。在Windows上它大概是1.25GB,而即使是32位操作系统也可以处理更多。特别容易受到SoundByteArrayFileStream类的攻击,但在后台使用这些类的其他类也会受到影响。

我在处理大量文件(FileStream)并操纵它们(ByteArray)时了解到了这一点。但是,当达到内存限制时抛出的错误消息通常不会指向正确的错误源...在为FileStream类编写包装器和自定义调试器以处理它所具有的所有奇怪之后(尝试0字节长度的文件,一个最喜欢的错误来源)我下载了4k行代码,但仍然无法控制所有案例。

我在几乎所有内存密集型AIR应用程序中偶然发现了这些错误,并最终决定退出ActionScript。至少从2009年开始,Adobe必须知道底层问题。还记得FP9打破unloadSound()方法并且Adobe承诺在FP10中修复它吗?嗯,他们有点修复它,现在发生的次数会减少。但那是关于它的。他们没有完全解决潜在的问题。

因此,除非Adobe修复底层架构中的错误,否则64位版本的AIR将无法帮助您。他们在过去几年中处理ActionScript的方式,我不打赌他们这样做。

这个功能最终让我意识到正在发生的事情。运行它并逐步执行while循环,观察res之后res.length == 18变量会发生什么。

public static function hexToString(hex:*, len:uint = 32):String
{
    if (hex == null || isNaN(hex))
    {
        return "UNKNOWN TYPE";
    }
    var str:String = '';
    var strIn:String = hex.toString(16).substr(-len).toUpperCase();
    var char:uint = 0x00;
    var charStr:String = '';
    var res:String = '';

    while (strIn.length < len)
    {
        strIn = '0'+strIn;
    }

    res = strIn;

    while (res.length > 1)
    {
        charStr = '0x'+res.substr(0, 2);
        char = parseInt(charStr, 16);
        res = res.substr(2);
        str += String.fromCharCode(char);
    }

    return str;
}

我将函数转换为PHP和JS以确认,PHP和JS都没有显示出错误的行为。

答案 3 :(得分:0)

我最近对此问题进行了调查,实际上似乎存在内存阈值(取决于平台,似乎特别是在操作系统上),之后AIR应用程序将无响应/崩溃。我在这里打开了一个Adobe错误:https://tracker.adobe.com/#/view/AIR-4198476。希望我们能尽快从Adobe获得更多信息。