除了渲染向量之外,AS3 中的主要性能影响因素是什么?

2023-12-20

在 ActionScript 3 中,使用矢量图形肯定会对项目性能造成巨大损害。

使用单个Bitmap对于所有图形使用.copyPixels() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#copyPixels%28%29通过其BitmapData对象代替所有矢量图形将产生令人难以置信的性能提升,这对于像我这样在 Flash 中开发游戏的人来说至关重要。

除此之外,我不太确定我应该瞄准并尝试优化的下一个主要内容是什么。我确实使用了很多内置的三角函数,但它们似乎并没有太大影响。我知道有一些库可以使用近似方法和类似方法来优化数学,但到目前为止我还没有发现这些是必要的。

我还应该关注其他大量已知点吗?我更多地指的是我应该注意的内置事物(例如避免矢量渲染),而不是如何改进我自己的编码风格。


我发现有用的文档是:

  • 优化 Adob​​e Flash 平台的性能 http://help.adobe.com/en_US/as3/mobile/flashplatform_optimizing_content.pdf
  • ActionScript 3.0 和 AVM2 性能调整(Gary Grossman) http://labs.jasonsturges.com/stack-overflow/as3-performance/AS3TuningInsideAVM2JIT.pdf
  • 构建高性能 iPhone 应用程序作者:Mike Chambers http://www.mikechambers.com/files/presentations/fitc_amsterdam_2010/flash_iphone_fitc_2010.pdf

一些亮点:

选择合适的展示对象 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-8000.html

限制内存使用的最简单的优化技巧之一是 使用适当的类型显示对象 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html。对于简单的形状 不交互,使用Shape http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Shape.html对象。为了交互对象 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/InteractiveObject.html那不 需要一个时间表,使用Sprite http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Sprite.html对象。对于使用 时间线,使用影片剪辑 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/MovieClip.html对象。

Use getSize()对代码进行基准测试 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-7fff.html

getSize() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/sampler/package.html#getSize%28%29返回指定对象在内存中的大小。

选择适当的原始类型以节省内存 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-7fff.html

所有原始类型,除了String http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/String.html在内存中使用 4 - 8 个字节。 ANumber http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Number.html,表示一个 64 位值,由 分配 8 个字节 ActionScript 虚拟机 (AVM)(如果未分配值)。 String 类型的行为有所不同。基准代码和 确定任务最有效的对象。

重用对象 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-7ffe.html

通过重用对象来优化内存,并避免在任何时候重新创建它们 可能的。

使用对象池 http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a6-19cd3c2412513c24bce-8000.html

重用对象减少了实例化对象的需要,这可以 昂贵的。它还减少了垃圾收集器的机会 正在运行,这可能会减慢您的应用程序的速度。

空闲内存 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-7ffc.html

为了确保一个对象是垃圾收集 http://www.adobe.com/devnet/actionscript/learning/as3-fundamentals/garbage-collection.html, 删除所有 对对象的引用。内存分配,而不是对象 删除,触发垃圾收集。尝试限制垃圾 集合通过尽可能地重用对象来传递。另外,设置 如果可能的话,引用 null,以便垃圾收集器 花费更少的处理时间来查找对象。想想垃圾 将集合作为保险,并始终管理对象的生命周期 如果可能的话,明确地。

将显示对象的引用设置为 null 并不能确保 物体被冻结。该对象继续消耗 CPU 周期,直到它 被垃圾收集。

位图数据 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html类包括一个dispose() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#dispose%28%29方法,虽然处置 方法从内存中删除像素,但仍必须设置引用 为 null 以完全释放它。

使用位图 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-7ffb.html

使用向量,尤其是大量使用向量,可以显着提高 需要 CPU 或 GPU 资源。使用bitmaps http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Bitmap.html是一个优化的好方法 渲染,因为运行时需要更少的处理资源 在屏幕上绘制像素而不是渲染矢量内容。

避免使用滤镜,包括通过 Pixel Bender 处理的滤镜 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-7ff8.html

当过滤器应用于显示对象时,运行时会创建两个 内存中的位图。使用外部创作的位图有助于 运行时以减少 CPU 或 GPU 负载。

使用 mipmap 缩放大图像 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-7ff7.html

谨慎使用 mipmap。虽然它提高了质量 缩小尺寸的位图,它会对带宽、内存和速度产生影响。

使用文本引擎读取只读文本,TextField用于输入文本 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-7ff5.html

对于只读文本,最好使用Flash 文本引擎 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/engine/package-detail.html, 哪个 提供低内存使用和更好的渲染。对于输入文本,文本域 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html对象是更好的选择,因为 ActionScript 代码更少 需要创建典型的行为,例如输入处理和 自动换行。

使用回调而不是事件 http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a6d20da321260fed8a52-8000.html

使用本机事件模型可能会更慢并且消耗更多内存 比使用传统的回调函数。事件对象必须是 在内存中创建和分配,这会导致性能下降。 例如,当听Event.ENTER_FRAME http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/Event.html#ENTER_FRAME事件,一个新的 在每个帧上为事件处理程序创建事件对象。 由于以下原因,显示对象的性能可能特别慢 捕获和冒泡阶段,如果显示器 清单很复杂。

在舞台上添加/删除对象时冻结和解冻对象 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-8000.html#WS4bebcd66a74275c36cfb8137124318eebc6-7ffc

即使显示对象不再位于显示列表中并且已存在 等待垃圾收集,他们可能仍在使用 CPU 密集型代码。

加载远程内容时冻结的概念也很重要 与 Loader 类。

unloadAndStop() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#unloadAndStop%28%29方法允许您卸载 SWF 文件, 自动冻结加载的 SWF 文件中的每个对象,并强制 要运行的垃圾收集器。

Use Event.ACTIVATE and Event.DEACTIVATE用于检测后台不活动的事件 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-8000.html#WS948100b6829bd5a6-6752030e12905479288-8000

Event.ACTIVATE http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/Event.html#ACTIVATE and Event.DEACTIVATE http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/Event.html#DEACTIVATE事件允许您检测 当运行时获得或失去焦点时。结果,代码可以是 优化以对上下文变化做出反应。

激活和停用事件允许您实现类似的 有时在移动设备上发现“暂停和恢复”功能的机制 设备和上网本。

尽可能禁用鼠标交互 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-8000.html#WS948100b6829bd5a63821f6a2126681c5c57-8000

当许多交互式操作时,检测鼠标交互可能会占用大量 CPU 资源 对象显示在屏幕上,尤其是当它们重叠时。什么时候 可能的话,考虑禁用鼠标交互,这有助于您 应用程序使用更少的 CPU 处理,从而减少 移动设备上的电池使用情况。

对非动画内容使用计时器 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-8000.html#WS4bebcd66a74275c36cfb8137124318eebc6-7ffb

定时器优先于Event.ENTER_FRAME非动画事件 长时间执行的内容。

计时器的行为方式与Event.ENTER_FRAME事件,但是一个 可以在不依赖于帧速率的情况下调度事件。这 行为可以提供一些重要的优化。考虑一个视频 以播放器应用程序为例。在这种情况下,您不需要使用 高帧速率,因为只有应用程序控件在移动。

限制补间 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-8000.html#WS4bebcd66a74275c36cfb8137124318eebc6-7ffa

限制补间的使用,这可以节省 CPU 处理、内存和 电池寿命有助于内容在低端设备上更快地运行。

Use Vector vs. Array http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7fff.html

The Vector http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Vector.html类允许比类更快的读写访问Array http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html班级。

使用 Vector 时,数组元素访问和迭代要快得多 实例比使用数组时的实例要大。

在严格模式下,编译器可以识别数据类型错误。

运行时范围检查(或固定长度检查)增加 可靠性明显优于阵列。

使用绘图 API 加快代码执行速度 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7ffe.html

使用减少代码执行量drawPath() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#drawPath%28%29, drawGraphicsData() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#drawGraphicsData%28%29, drawTriangles() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#drawTriangles%28%29更少的行数 代码可以提供更好的ActionScript执行性能。

使用事件捕获和冒泡来最小化事件处理程序 http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a67edfb831266c0b5fc6-8000.html

利用事件的冒泡可以帮助您优化 ActionScript 代码执行时间。您可以在以下位置注册事件处理程序 一个对象,而不是多个对象,以提高性能。

使用绘制像素setVector() method http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7ffd.html

绘制像素时,可以通过以下方式进行一些简单的优化 使用 BitmapData 类的适当方法。一个快速的方法 绘制像素是使用setVector() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#setVector%28%29 method.

lock() and unlock() BitmapData当使用慢速方法时,例如setPixel() or setPixel32() http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7ffd.html

Calling lock() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#lock%28%29 and unlock() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#unlock%28%29阻止屏幕更新 不必要的。迭代像素的方法,例如getPixel() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#getPixel%28%29, getPixel32() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#getPixel32%28%29, setPixel() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#setPixel%28%29, and setPixel32() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#setPixel32%28%29,可能会很慢, 尤其是在移动设备上。如果可能,请使用检索方法 一次调用中的所有像素。要读取像素,请使用getVector() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#getVector%28%29方法,该方法比getPixels() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#getPixels%28%29方法。另外,请记住 尽可能使用依赖于 Vector 对象的 API 可能会跑得更快。

Use String类方法而不是正则表达式 http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a6711168a01275489830e-8000.html

When a String http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/String.html类方法可用,它的运行速度比 等效的正则表达式并且不需要创建 另一个物体。

对于文本字段,使用apendText()而不是+=操作员 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7ffc.html

使用appendText() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#appendText%28%29方法提供了性能改进。

方括号运算符[]会降低性能 - 将引用存储在局部变量中 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7ffc.html

使用方括号运算符会降低性能。你可以 通过将引用存储在局部变量中来避免使用它。

通过内联移动代码减少函数调用次数 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7ffc.html

调用函数可能会很昂贵。尝试减少数量 通过内联移动代码来调用函数。

移动函数调用内联会导致代码超过四个 快几倍。

避免将内容放在舞台外 http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a66f2268f12913a0c073-8000.html

即使舞台外的元素没有显示在屏幕上并且没有 渲染后,它们仍然存在于显示列表中。运行时间继续 对这些元素进行内部测试以确保它们是 仍在舞台外,用户没有与他们互动。

避免使用alpha财产 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36c11f3d612431904db9-7ffe.html

当显示对象使用alpha http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#alpha混合,运行时必须结合 每个堆叠显示对象和背景的颜色值 颜色来决定最终的颜色。因此,alpha 混合可以更 比绘制不透明的颜色需要占用更多的处理器资源。这个额外的 计算可能会损害慢速设备上的性能。

使用尽可能低的帧速率 http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a61c0b0b612763986266-8000.html

较高的帧速率会消耗更多的 CPU 周期和能量 电池电量比较低。

Runtime code execution fundamentals http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a61a52657a1274ff66899-8000.html elastic-racetrack

对复杂的矢量内容使用位图缓存 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36c11f3d612431904db9-7ffc.html

此功能缓存矢量对象,将其渲染为位图 在内部,并使用该位图进行渲染。位图缓存 如果缓存内容未旋转、缩放或未旋转,则可改进渲染 每一帧都发生变化。除翻译外的任何转换 x 轴和 y 轴,渲染效果没有改善。

Set cacheAsBitmapMatrix在移动 AIR 应用程序中使用缓存位图时的属性 http://help.adobe.com/en_US/as3/mobile/WS901d38e593cd1bac-11f566412b2b29517b-8000.html

cacheAsBitmapMatrix http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#cacheAsBitmapMatrix在 AIR 移动配置文件中,您可以应用任何 二维变换到对象而不重新生成 缓存的位图。您还可以更改 alpha 属性,而无需 重新生成缓存的位图。

Use BitmapData用于创建自定义位图缓存行为的类 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36c11f3d612431904db9-7ffb.html

仅使用单个缓存位图在内存中使用并由所有共享 实例。

隔离事件,例如Event.ENTER_FRAME在单个处理程序中 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36c11f3d612431904db9-7ffa.html

该技术可以节省CPU资源。

使用位图缓存功能和opaqueBackground属性以提高文本渲染性能 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36c11f3d612431904db9-7ff9.html

位图缓存功能允许您将矢量内容缓存为 位图以提高渲染性能。此功能有助于 复杂的矢量内容,以及与文本内容一起使用时 需要处理才能呈现。

Alpha 透明度会给运行时带来额外的负担 绘制透明位图图像。您可以使用opaqueBackground http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#opaqueBackground属性来绕过它,通过指定 颜色作为背景。

启用GPU硬件图形加速 http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a6-54120f1012593d8f030-8000.html

为了利用 AIR 的 Flash 内容的 GPU 加速 移动平台,Adobe 建议您使用渲染模式=“直接” http://help.adobe.com/en_US/air/build/WSfffb011ac560372f2fea1812938a6e463-8000.html#WSfffb011ac560372f2fea1812938a6e463-7fe3(即 Stage3D)而不是 renderMode="gpu"。 Adobe 官方 支持并推荐以下内容Stage3D http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Stage3D.html基于框架:椋鸟 (2D) http://gamua.com/starling/ and 远离3D (3D) http://away3d.com/.

避免使用wmode=透明或wmode=不透明 http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7a92.html在 HTML 中嵌入 参数。这些模式可能会导致性能下降。他们能 也会导致音频和视频同步的轻微损失 软件和硬件渲染。此外,很多平台并没有 当这些模式生效时支持 GPU 渲染,显着 损害性能。

倾向于使用异步版本的操作 http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a6-4c2e64612754b0a95b-8000.html

当前执行线程中的应用程序代码继续执行。

异步操作被调度和划分以避免渲染 问题。因此,更容易获得响应式 使用异步版本操作的应用程序。看感知 性能与实际性能 http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a61a52657a1274ff66899-7fff.html了解更多信息。

平滑形状以改善渲染 http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a6441c2d912897db4bb0-8000.html

与位图不同,渲染矢量内容需要大量计算, 特别是对于包含许多控制的渐变和复杂路径 点。作为设计师或开发人员,请确保形状符合 足够优化。

加载资源后在本地缓存资源,而不是每次需要时从网络加载它们 http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a61596760212754e435e6-8000.html

如果您的应用程序加载媒体或数据等资产,请缓存 将资产保存到本地设备。对于发生变化的资产 偶尔,请考虑定期更新缓存。

Use the StageVideo利用硬件加速的类 http://help.adobe.com/en_US/as3/mobile/WS4ab7a0c759d40da6134889a212da4f4ee32-8000.html

Use the 舞台视频 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/StageVideo.html类利用硬件加速 呈现视频。

这种方法充分利用了底层视频硬件。 结果是 CPU 上的负载大大降低,这意味着 功能较弱的设备上的帧速率较高,内存也较少 用法。

在同等比特率下,AAC 音频格式比 mp3 格式提供更好的质量和更小的文件大小 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36ffa41af1243193910f-7ffc.html

与视频解码类似,音频解码需要较高的 CPU 周期,并且 可以通过利用设备上的可用硬件进行优化。

AAC 格式比 AAC 格式提供更好的质量和更小的文件大小 具有同等比特率的 mp3 格式。

最小化构造函数中的代码 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Object.html#constructor

初始化函数如构造函数 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Object.html#constructor被解释, 其他一切都是 JIT。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

除了渲染向量之外,AS3 中的主要性能影响因素是什么? 的相关文章

  • GCC 优化对位操作的有效性

    以下是在 x86 64 上设置 C 中单个位的两种方法 inline void SetBitC long array int bit Pure C version array 1 lt
  • MySQL INSERT 语句在大表中是否会变慢?

    我可以看到如何SELECT and UPDATE随着表的不断增长 语句会变得越来越慢 但是呢INSERT INSERT也会变慢 特别是如果你有很多indexes也必须更新 但不同的存储引擎之间存在差异 MyISAM对于很多人来说更快SELE
  • 如何在 AS3 flash 中暂停/播放嵌入声音

    我有一个长度为 1 分 30 分钟的声音 我将其嵌入到我的 swf 中并将其设置为与框架同步 我需要的是能够通过 ActionScript 暂停和播放这个声音 有谁知道如何做到这一点 number that is redefined whe
  • Python:写入大文件时,保持文件打开还是打开文件并根据需要追加到文件中?

    我想知道如何最好地处理 python 中的大文件写入 我的Python代码多次循环运行外部程序 古老的Fortran 具有奇怪的输入文件格式 读取其输出 一行文件 进行一些非常简单的处理 然后写入编译后的输出文件 外部程序执行速度很快 远低
  • 防止某些孩子影响 MouseEvent hitbox

    我有一个影片剪辑 用作按钮 在该影片剪辑中 当鼠标悬停在按钮上时会显示一个大阴影 我的问题是 这个阴影会影响鼠标悬停 并导致 mouseOver 和 mouseOut 事件的 捕获 区域比我想要的大得多 我尝试过禁用该子项上的鼠标事件以及我
  • 当我提前知道可迭代类的长度时,我可以加速它吗?

    PEP 424 https www python org dev peps pep 0424 在 理由 中提到 能够根据预期大小预先分配列表 如估计的那样 length hint 可以是一个重大的优化 据观察 CPython 运行某些代码的
  • 此代码中 Matlab 与 C++ 速度比较

    我编写了简单的 C 代码并在 C 中对其进行了测试 然后我通过以下方式为 MATLAB 调整了相同的代码mex file name cpp并在 MATLAB 中运行相同的代码 该代码使用与 C 相同的编译器 这是代码 int k for i
  • 回显内容有时需要很长时间

    我有一个脚本 可以用一个字符串 content 构建我的网页 然后将其回显给用户 我的脚本如下所示 time1 microtime true content create content content time microtime tru
  • 超越堆栈采样:C++ 分析器

    黑客的故事 日期是 2010 年 2 月 12 日 圣诞节前的日子已经过去了 作为一名 Windows 程序员 我几乎遇到了一个主要障碍 我一直在使用 AQTime 我尝试过 sleepy shiny very sleepy 就在我们说话的
  • 当数据大小超过 500 万时,在 mongoDb 中从 java 调用 find() 查询会变慢

    我的应用程序在从 java 的 mongoDb 中执行 find 操作时遇到性能问题 当数据大小超过 500 万时 需要花费大量时间 有时搜索单个文档需要数千毫秒 任何意见都将受到赞赏 java查找查询 db test find flag
  • 为什么linkedhashmap维护双向链表进行迭代

    因为任何线程都没有内部合理的解释 请给我确切的理由 对于插入顺序 用单链表维护就足够了 但为什么不呢 在这种情况下 双向链表如何提高性能 所有方法都是从 hashmap xpt 4 方法继承的 那么 hashmap 的迭代器不维护顺序 而
  • 有没有办法子类化并重写自定义命名空间中的方法?

    假设我有一个类 其方法定义在公共 受保护或内部之外的命名空间中 package com foo bar import com foo my name space public class bar private var vabc Strin
  • InnoDB vs. MyISAM 插入查询时间

    我有一个大型 MySQL 表 约 1000 万行 6 5G 用于读取和写入 它是MyISAM 由于MyISAM 的所有表写入锁 我获得了很多锁 我决定尝试迁移到 InnoDB 推荐用于读 写表 它只锁定写入时的特定行 转换后 我测试了插入语
  • 如何测量 Storm 拓扑中的延迟和吞吐量

    我正在通过示例学习 StormExclamationTopology https github com nathanmarz storm starter blob master src jvm storm starter Exclamati
  • Java:输入/使用“try-catch”块的开销?

    这个问题说明了一切 尽管命中率不是很高 我测得速度慢了 1 5 倍到 2 倍 但使用 try catch 的字节码和不使用 try catch 的字节码之间没有区别 那么是什么让它通常变慢呢 PL 请注意 问题不是抛出异常的开销 而是进入
  • Hibernate 对于 Android 应用程序来说是一种杀伤力吗? [复制]

    这个问题在这里已经有答案了 我正在为我的 Android 应用程序寻找一个好的 ORM 乍一看似乎对于移动设备我更喜欢使用更简单的东西 问题是我只是在这里假设 没有真正的证据 所以我想我应该询问社区的意见 也许有人有过这样的经历 它是一个相
  • 使用 Haxe 复制图像

    我的目标是仅使用一张方形图像制作一张宽地图 使用actionscript 3 解决方案是简单地从加载器创建新的位图 var loader Loader new Loader loader load new URLRequest xyz pn
  • Django:将博客条目查看次数增加一。这有效率吗?

    我的索引视图中有以下代码 latest entry list Entry objects filter is published True order by date published 10 for entry in latest ent
  • WHERE 子句或 ON 子句中的 INNER JOIN 条件?

    我今天输错了一个查询 但它仍然有效并给出了预期的结果 我的意思是运行这个查询 SELECT e id FROM employees e JOIN users u ON u email e email WHERE u id 139840 但我
  • html5 vs flash - 完整的比较图表在哪里? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 因此 自从史蒂夫 乔布斯说 Flash 很糟糕并暗示 HTML5 可以完成 Flash 可以做的所有事情

随机推荐