- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有相当庞大的代码库正在编译并开始在 FlasCC 中运行。刚打开 .swf 时,播放器的内存使用量约为 300MB。它或多或少很好,因为似乎仍有大约 300MB 的动态分配内存可供 C++ 代码使用。
当我们创建线程时,问题就开始了。 According to documentation ,每个线程都将 .swf 复制到内存中并在沙箱中运行。这是否意味着每个 pthread 都会占用播放器打开 .swf 所用的大约 300MB 内存?
好像是这样。我已经完成了生成 pthread 和转储内存使用情况的简单测试(flash.system.System 向我们报告的内容,以及 CModule.ram.length)。这是日志:
Starting 10 threads.
Memory usage: total=288MB private=335MB free=2MB CModule=33MB
Thread 0 started.
Memory usage: total=683MB private=732MB free=1MB CModule=36MB
Thread 1 started.
Memory usage: total=1071MB private=1121MB free=1MB CModule=37MB
Thread 2 started.
Memory usage: total=1459MB private=1510MB free=1MB CModule=38MB
此时 plash_player_debugger 已退出(崩溃),没有任何错误消息。
这基本上意味着我们没有线程。启动 2 个 pthread 后,只剩下约 50MB 的内存可用于 C++ 代码。
Adobe Scout 提供了更深入的内存使用情况分割。以下是 .swf 以 2 个后台线程运行时报告的内容:(a picture from the same question on Adobe forums)
在生成这 2 个空闲 pthread 后,“其他” block 已从 11 MB 膨胀到 800 MB。内存进入“其他玩家”和“未分类”。
所以主要问题是:如何解决这个问题?也许有办法让 AS3 worker 消耗更少的内存?
最佳答案
如果您考虑 AS3 worker API,您可以传递任何 SWF 文件来执行。
大多数示例(在 AS3 中)建议传递当前 SWF 字节,然后使用类似 Worker.current.isPrimordial
的内容来决定要做什么。
因此,虽然我认为您无法避免玩家实例与线程一样多的事实,但更好的方法是使 worker SWF a separate module不会回收与主 SWF 一样多的内存。
具体对于您的情况,我意识到这可能非常困难,因为您依赖于 Adobe 的 pthread 与工作人员的实现,这显然只是作为工作人员传入主 SWF 文件。此外,将使用线程的现有 C/C++ 代码库迁移到 AS3 worker 绝非易事。
关于multithreading - 如何解决 FlasCC 中巨大的 pthread 内存成本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15371381/
我已经用 flascc expcept 网络编译了 ffmpeg。因为 flascc 不能使用套接字、轮询和选择功能。我意识到 ffmpeg 中的 network.c 文件是套接字函数的包装器。我认为
我尝试使用具有以下参数的新 flascc 编译器编译 ffmpeg(我只设置了 h263 能力作为测试): PATH=/cygdrive/c/download/flascc/sdk/usr/bin:$
我们有相当庞大的代码库正在编译并开始在 FlasCC 中运行。刚打开 .swf 时,播放器的内存使用量约为 300MB。它或多或少很好,因为似乎仍有大约 300MB 的动态分配内存可供 C++ 代码使
我有一个 AS3 AIR 项目,我需要使用特定的解压缩方法在其中解压缩文件。显然找到了这个代码here, in the contrib/blast directory of the zlib dist
我听说过 FlasCC,它是一个针对 AVM2 的 C/C++ 编译器。而且我听说它是基于旧版本的 GCC。 (4.2??) FlasCC 支持哪些类型/版本的 C 和 C++ 标准? 最佳答案
假设我是 AS3 和 FlasCC 的新手,并尝试将一些遗留的 C++ 代码移植到 Flash。我有一些数字运算例程,它采用 double 类型的数组。 (数组是固定大小的)。 C++ 原型(prot
我希望能从熟悉 C++ 和 Actionscript 的任何人那里得到一些反馈。不幸的是,我不是 C++ 编码员。 我正在使用 AIRKinect 框架开发 Kinect 应用程序。不幸的是,该框架的
我想将 ByteArray 从 ActionScript 传递给 C 函数。 基本上我想做这样的事情: void init() __attribute__((used,annotate("as3sig
我正在尝试获取 game-music-emu-flash与 FlasCC 合作。它使用 C/C++ Game_Music_Emu 库,最初是用 Alchemy 编译的,但我想看看 FlasCC 是否有
我是一名优秀的程序员,十分优秀!