在 as3 中获取对象值的最快方法

2024-01-09

好吧,我发誓这个问题应该无处不在,但事实并非如此。

我有一个值对象,里面有很多 getter/setter。它不是一个动态类。我迫切需要搜索充满它们的 ArrayCollection。搜索涵盖所有领域,因此我将使用大约 13 种不同类型的 VO。

我尝试过 ObjectUtil.toString() ,效果很好,但速度慢得要命。有 20 个属性需要返回,并且 ObjectUtil.toString() 在输出中添加了一堆垃圾,更不用说代码一开始就很慢。

flash.utils.describeType() 更糟糕。

我会很高兴听到我遗漏了一些明显的东西。

更新: 我最终采用了 Juan 的代码以及用于搜索的过滤算法并创建了 ArrayCollectionX。这意味着我现在使用的每个 ArrayCollection 都处理它自己的过滤器。我可以搜索 AC 中项目的各个属性,或者使用 Juan 的代码,它可以像冠军一样处理完整的集合搜索。与使用外部滤波器的相同解决方案相比,延迟可以忽略不计。


如果我正确理解你的问题,你想要的是为某些对象定义的吸气剂列表。据我所知,您必须使用describeType来完成类似的事情(我很确定ObjectUtils在幕后使用了这个方法)。

正如您所注意到的,大量调用describeType会很慢。但对于只有 13 种类型,我认为这应该不成问题。由于这些类型不是动态的,因此您知道它们的属性是固定的,因此您可以检索此数据一次并将其缓存。您可以预先构建缓存,也可以在发现新类型时构建缓存。

这是在代码中执行此操作的简单方法:

private var typePropertiesCache:Object = {};

private function getPropertyNames(instance:Object):Array {
    var className:String = getQualifiedClassName(instance);
    if(typePropertiesCache[className]) {
        return typePropertiesCache[className];
    }
    var typeDef:XML = describeType(instance);
    var props:Array = [];
    for each(var prop:XML in typeDef.accessor.(@access == "readwrite" || @access == "readonly")) {
        props.push(prop.@name);
    }   
    return typePropertiesCache[className] = props;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 as3 中获取对象值的最快方法 的相关文章

  • 使用 Numba 加速矢量距离计算

    以下是我为 3 D 环形几何中的距离 平方 计算编写的一些函数 用于该 3 D 空间中的粒子集合 import itertools import time import numpy as np import scipy import num
  • 如何加快编辑距离计算速度

    我正在尝试运行模拟来测试平均值编辑距离 http en wikipedia org wiki Levenshtein distance之间随机 二进制字符串 我的程序是用 python 编写的 但我正在使用这个C扩展 https githu
  • Flex 相当于 Google Visualization Geomap(等值线地图)?

    The 谷歌可视化地理地图 http code google com apis visualization documentation gallery geomap html Overview组件是一个等值线地图 http en wikip
  • javascript中的快捷方式融合优化

    我听说 lodash 和其他 javascript 库使用一种称为 快捷融合 的技术进行优化 但在任何地方都找不到该技术的详细解释 任何人都可以提供链接或举例解释 快捷方式融合 的含义吗 对于一个非常简短且不清楚的解释 https wiki
  • 如何使用 Rails 应用程序中的 s3 在存储桶之间复制文件?

    我目前正在开发一个 Rails 应用程序 尝试将视频从 s3 中的一个存储桶复制 移动到另一个存储桶 但是我在 Rails 应用程序上不断收到代理错误 502 在杂种日志中 它显示 无法分配内存 一旦发生此错误 应用程序就会终止 我们必须重
  • 从相机录制视频、叠加位图、添加音频、保存到设备,所有这些都在 as3/AIR mobile 中进行

    我的任务是在移动设备上录制来自摄像头的实时视频流 然后覆盖随时间变化的位图 并将音频 mp3 轨道添加到视频文件中 然后将其保存到设备上的某个位置 例如相机胶卷 我看到了一些有用的帖子 主要是这个 AS3 Flash AIR 使用网络摄像头
  • 在Python中将字典转换为以键作为对象名称的对象

    我有一本这样的字典 d item1 Hi 150 495 item2 Hola 590 40 我想将其转换为对象 如果可能的话递归地 我有一堂课 class Item def init self thetuple self greeting
  • Oracle 中的 SQL 调优 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何文章 链接可以让我找到 SQL 调优 Oracle 的示例 如果能用例子来解释那就太好了 我需
  • 浏览器视口大小(以设备像素为单位)

    Goal 我希望 Flash 能够获得有关浏览器视口宽度和高度 以设备像素为单位 的准确信息初始化 调整大小或浏览器缩放事件时 规格 我需要将 flash 嵌入到在 chrome safari firefox 等中运行的 html 页面中
  • 创建一定范围内的随机数?

    生成具有范围的随机数的简单方法是什么 这行得通吗 private function randRange minNum Number maxNum Number Number return Math floor Math random max
  • 在 AS3 中创建一个(适当的)计时器

    如何在as3中创建时间计数器 在 google 上进行一些简单的搜索 您会找到 AS3 类 Timer 它实际上是事件计数器 不是一个合适的时间计数效用 我见过这个http blogs adobe com pdehaan 2006 07 u
  • 如何正确取消引用然后删除 JavaScript 对象?

    我想知道从内存中完全取消引用 JavaScript 对象的正确方法 确保删除时不会在内存中悬空 并且垃圾收集器会删除该对象 当我看这个问题时在 JavaScript 中删除对象 https stackoverflow com questio
  • AS3如何在角色死亡动画结束时转到MainTimeline中的下一帧

    所以我需要知道我的角色 鸟 是否用管道 hitTestObject 在动画结束后播放骰子动画 它需要在主时间轴中转到游戏结束帧 if bird hitTestObject pipe1 bird gotoAndStop 3 frame 3 w
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use
  • 优化视图状态

    是否有人对优化 ASP NET 应用程序的视图状态有任何想法或参考可以向我指出 我不想把它全部关闭 优化它的主要目标是提高性能 所以我不想运行一个昂贵的函数来递归地禁用某些控件的视图状态 因为该函数会减慢速度页面的加载时间会达不到目的 有任
  • 通过链接导航多个对象而不重复

    我正在尝试浏览一堆带有其他对象链接的对象 我想从 id 1 开始并浏览每个对象 有些对象会循环回到之前的对象 所以我想确保每个对象只查看一次 否则我会陷入无限循环 我还希望能够通过链接导航来判断哪些对象无法访问 我认为导航顺序并不重要 这是
  • Java 中查看 ArrayList 是否包含对象的最有效方法

    我有一个 Java 对象的 ArrayList 这些对象有四个字段 我用其中两个字段来将对象视为与另一个对象相等 我正在寻找最有效的方法 给定这两个字段 以查看数组是否包含该对象 问题在于这些类是基于 XSD 对象生成的 因此我无法修改类本
  • 生成尽可能最快的可执行文件

    我有一个非常大的程序 我一直在 Visual Studio 下编译 v6 然后迁移到 2008 我需要可执行文件尽可能快地运行 该程序大部分时间都花在处理各种大小的整数上 并且执行很少的 IO 显然 我会选择最大优化 但似乎可以做很多不属于
  • 移动影片剪辑时的视觉错误

    在我尝试创建一个简单的类似乒乓球的游戏时 我遇到了一个非常奇怪的 有时甚至是严重的视觉错误 当我设置球 Flash CS 5 5 库 MovieClip 以相当快的速度在屏幕上移动时 我注意到有时球的边缘会在其移动方向上被短暂切断 当它发生
  • 对象克隆库的 Flash 复制?

    这可能是一个非常简单的问题 我只是不知道如何解决 我有一个想要复制的对象 但不知道如何进行 这是我的尝试 var myObj new ObjectClass var duplicate myObj duplicate null myObj

随机推荐

  • 复制带有选中复选框的行

    我想将三张纸 肝脏 肺 和 肾脏 中选中复选框的行合并到一张 报告 中 我想抓取 A 列中不包含单词 sample 的行 当我将数据粘贴到 Report 中时 我想通过在其间添加一行 用相应的原始工作表名称来标记每组行 其中包含A 列中的工
  • 分步天气 API 教程 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在哪里可以找到有关某些 api 天气实现的良好分步教程 我对此很陌生 因此官方文档并不总是像我需要开始理解的那样清晰 您可以使用来自各个站
  • SessionFactory.getCurrentSession() 线程安全吗?

    通过获取 Hibernate 会话是否线程安全SessionFactory getCurrentSession 假设我有一个static SessionFactory用于我的整个应用程序的对象 并且我向我的 servlet 发出了 5 个并
  • TensorFlow 专家的混合体

    我想在 TensowFlow 上实现一个通用模块 它接收 TensorFlow 模型列表 此处表示为专家 并从中构建专家混合 如下图所示http www aclweb org anthology C16 1133 http www aclw
  • OpenIdConnect 错误 - 租户标识符可能不是空 GUID

    我正在尝试使用 OWIN Open ID Connect 中间件将 ASP NET 应用程序的身份验证外包给 Azure Active Directory 应用程序在访问需要授权的页面时成功重定向到 Azure AD 登录页面 但是 在登录
  • Windows下appcontainer进程和普通进程之间有ipc的方式吗?

    我正在尝试在 Windows 中的 appcontainer 进程和普通进程之间建立 ipc 我在Windows appcontainer中做了一个进程 感谢这个article https www malwaretech com 2015
  • MVVM:如何在控件上进行函数调用?

    在 XAML 中 我有一个带有 x Name of 的文本框MyTextBox
  • 当用户使用 jQuery 将表头滚动到视图之外时,表头保持固定在顶部

    我正在尝试设计一个 HTML 表格 其中当且仅当用户将其滚动到视图之外时 标题才会保留在页面顶部 例如 表格可能距离页面向下 500 像素 我该如何制作 以便如果用户将标题滚动到视图之外 浏览器以某种方式检测到它不再位于 Windows 视
  • c# 通过单击按钮停止线程

    如何通过单击按钮结束我的线程 我通过单击按钮开始我的线程 new Thread SampleFunction Start 和我的线程 void SampleFunction int i 0 while true string Seconds
  • Ruby 调试器在 STDIN 上失败。获取用户输入

    我相信您可以轻松重现该问题 只需使用新的 RubyMine 7 1 Mac 或 Windows 版本 Ruby 2 2 创建简单的脚本 puts Hi i m gonna break your debugger user input get
  • Android onKey 带虚拟键盘

    我使用 onKey 方法捕获键盘事件 按下 public boolean onKey View arg0 int arg1 KeyEvent arg2 do something return false 这对于物理键盘按下来说效果很好 但对
  • 从 Liquid 数组中获取下一个和上一个元素

    简洁版本 我想将 1 添加到液体模板中的数字并将结果用作数组索引 capture plus one 0 plus 1 endcapture div Value of plus one plus one div div This works
  • PropTypes 在 React 中不起作用

    我正在运行 React 16 2 0 并且正在使用 PropTypes 15 6 1 我正在使用 ES6 语法和 Webpack 我试图让 PropTypes 在传递无效道具时发出警告 但它不起作用 这是代码 SimpleMessage j
  • 在 R Shiny 中读取文件

    因此 我正在 R闪亮中构建一个应用程序 要求用户上传 csv 文件 一旦被 R闪亮读入 我不确定如何实际操作该对象来使用 一般代码语法如下 用户界面文件 ui R Define UI for random distribution appl
  • 如何在 64 位 Windows 7 计算机上安装 pycrypto?

    我尝试使用安装 PyCryptopip 但它抱怨需要 vcvarsall bat 我安装了 Visual Studio 2008 但现在我得到了ValueError u path 当我尝试从安装它时pip 我尝试从下载预构建的二进制文件虚空
  • 当我从应用程序中清除数据时,Sqlite 数据库被删除

    我创造了Sqlite应用程序中的数据库 当我清除数据时settings gt applications gt manage applications the Sqlite数据库已删除 任何要保留的建议sqlite数据库原样 当您按下Clea
  • 为什么 IE11 错误地处理 Node.normalize() 的减号?

    我遇到了一个问题 即当使用 Node normalize 函数连接相邻文本节点时 具有某些字符的 DOM 文本节点在 IE 中表现得很奇怪 我创建了一个 Codepen 示例 它允许您在 IE11 中重现该错误 http codepen i
  • 从谷歌应用程序脚本预填写谷歌表单

    我有一份学生登记表 其中有学生证 这是必填字段 我有一个谷歌应用程序脚本函数 可以告诉该学生是否注册了任何课程 有没有办法通过调用 Google Apps 脚本函数 是 或 否 来自动填写注册的现场课程 是的 您可以使用表单 ID 创建预填
  • 有没有办法有条件地应用注释?

    在我的 java play 应用程序中 我有注释 RequiresAuthentication clientName CasClient 在我的控制器内 我只想在生产环境中对用户进行身份验证 如何有条件地应用注释 如果我处理身份验证的方式是
  • 在 as3 中获取对象值的最快方法

    好吧 我发誓这个问题应该无处不在 但事实并非如此 我有一个值对象 里面有很多 getter setter 它不是一个动态类 我迫切需要搜索充满它们的 ArrayCollection 搜索涵盖所有领域 因此我将使用大约 13 种不同类型的 V