Adobe Air for Windows 64位?

4c8rllxm  于 2022-09-21  发布在  Windows
关注(0)|答案(4)|浏览(277)

我们正在开发一些内存密集型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应用程序的任何技巧。

t9aqgxwy

t9aqgxwy1#

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

它目前处于测试版,但我尝试了一下,似乎内存阈值大大提高了。分配3 GB+对我来说没有任何问题。

xdnvmnnf

xdnvmnnf2#

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

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

zpqajqem

zpqajqem3#

ActionScript在其内存管理中存在潜在的设计缺陷。这会根据机器的不同而有所不同。在Windows上,它的内存只有1.25 GB,而即使是32位的操作系统也能处理更多的内存。特别容易受到攻击的是SoundByteArrayFileStream类,但在后台使用这些类的其他类也会受到影响。

我在处理大量文件(FileStream)和操作它们(ByteArray)时学到了这一点。然而,当达到内存限制时抛出的错误消息大多没有指向错误的正确来源……在为FileStream类编写了一个 Package 器和一个定制调试器来处理它的所有奇怪之处(尝试0字节长度的文件,这是最常见的错误来源)之后,我得到了4k行代码,但仍然不能控制所有的情况。

在我制作的几乎所有内存密集型AIR应用程序中,我都偶然发现了这些错误,最终决定退出ActionScrip。Adobe必须至少从2009年起就知道潜在问题。还记得当fp9破坏了unloadSound()方法,Adobe承诺在fp10中修复它吗?嗯,他们在一定程度上修复了它,现在它发生的频率会减少。但仅此而已。他们没有完全解决根本问题。

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

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

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都没有显示错误行为。

qvk1mo1f

qvk1mo1f4#

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

相关问题