for循环条件下方法调用的效率

2023-11-25

我正在编写一个游戏引擎,其中一组对象保存在一个ArrayList使用 for 循环进行迭代。显然,效率相当重要,所以我想知道循环的效率。

for (String extension : assetLoader.getSupportedExtensions()) {
    // do stuff with the extension here
}

Where getSupportedExtension()返回一个ArrayList of Strings。我想知道的是,是否每次循环迭代新扩展时都会调用该方法。如果是这样,这样做会更有效吗:

ArrayList<String> supportedExtensions = ((IAssetLoader<?>) loader).getSupportedExtensions();

for (String extension : supportedExtensions) {
    // stuff
}

?提前致谢。


根据规范,习语

for (String extension : assetLoader.getSupportedExtensions()) {
  ...
}

扩展到

for (Iterator<String> it = assetLoader.getSupportedExtensions().iterator(); it.hasNext();)
{
    String extension = it.next();
    ...
}

因此,您询问的调用仅在循环初始化时发生一次。它是其方法被重复调用的迭代器对象。

但是,如果您确实对应用程序的性能感兴趣,那么您应该确保您关注的是大胜利而不是像这样的小人物。让 getter 调用成为任何代码段中的瓶颈几乎是不可能的。对于在 HotSpot 上运行的应用程序来说,这会加倍,它将内联该 getter 调用并将其转变为直接字段访问。

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

for循环条件下方法调用的效率 的相关文章

  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • Draggable JS Bootstrap 模式 - 性能问题

    对于工作中的项目 我们在 JavaScript 中使用 Bootstrap Modal 窗口 我们想让一些窗口可移动 但我们遇到了 JQuery 的性能问题 myModal draggable handle modal header Exa
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List

随机推荐

  • Python监控串口(RS-232)握手信号

    我需要监控串口信号 RI DSR CD CTS 的状态 使用 串行 库进行循环和轮询 例如使用函数 getRI 的 CPU 强度太大 并且响应时间不可接受 有没有用python的解决方案 在 Linux 上 可以通过阻塞系统调用 TIOCM
  • 如何在单个语句中定义多个变量

    在Python中 我可以在一行中用一个数组定义两个变量 gt gt gt a b 1 2 gt gt gt a 1 gt gt gt b 2 我如何在 Java 中做同样的事情 我在 PCT 类中有几个变量 其类型是最终的 有没有一种方法可
  • UpdateModel 前缀 - ASP.NET MVC

    我遇到麻烦了TryUpdateModel 我的表单字段以前缀命名 但我使用 作为分隔符 而不是默认的点
  • Kotlin 1.2.10 和 Java 9 对于自动模块有相反的规则吗?

    我有一个使用 Kotlin Gradle 插件的 Gradle 项目 我想构建一个 Java 9 模块 所以我的目录结构如下所示 src main java module info java src main kotlin Foo kt B
  • 设置隐藏导航栏,具体取决于视图控制器的显示方式

    我有一个选项卡栏 其中一个选项卡中有一个导航控制器 目前 导航控制器的根视图没有显示导航栏 并且通过以下方式很好地动画到子视图中 void viewDidLoad self navigationController setNavigatio
  • 如何在 gensim 创建的 word2vec 上运行 tsne?

    我想可视化从 gensim 库创建的 word2vec 我尝试了 sklearn 但似乎我需要安装开发人员版本才能获得它 我尝试安装开发人员版本 但这在我的机器上不起作用 是否可以修改此代码以可视化 word2vec 模型 tsne pyt
  • Django - 上传的文件类型验证

    我需要验证上传文件的文件类型 并且应该只允许 pdf 普通测试和 MS Word 文件 这是我的模型和带有验证功能的表单 但是 即使没有扩展名 我也可以上传文件 class Section models Model content mode
  • 使用 CSS 关闭链接上的 Alt 标签?

    这个网站当您将鼠标悬停在侧边栏中的链接上时 我正在处理的问题会弹出烦人的 alt 标签 我没有放入这些 alt 标签 但是 我可以控制 CSS 有没有办法禁用它们 谢谢你 Tara 简单回答 no 仅通过 CSS 无法关闭它们 他们是依赖于
  • 如何处理 Spark 中数据帧列名称中的空格

    我从 df 注册了一个 tmp 表 该表的列标题中有空格 如何在通过 sqlContext 使用 sql 查询时提取该列 我尝试使用反勾但它不起作用 df1 sqlContext sql select Company Sector Indu
  • MongoDB - 涉及列表的更新插入

    我是 MongoDB 新手 想问一下如何编写涉及 upsert 和 list 的更新命令 基本上我想完成这样的事情 id ObjectId 4c28f62cbf8544c60506f11d some other data goes here
  • 进行证书验证的“urllib2.urlopen”的直接替代品

    我用Python的urllib2 urlopen用于与 HTTPS 服务器通信 但我现在学会了文档 HTTPS 请求 使用urllib2 urlopen 不对服务器的证书进行任何验证 这对我来说是一个大问题 因为它使我的服务器容易受到 MI
  • R 中带有 data.table 的交叉表[重复]

    这个问题在这里已经有答案了 我喜欢 R 中的 data table 包 我认为它可以帮助我执行复杂的交叉制表任务 但还没有弄清楚如何使用该包来执行类似的任务table 以下是一些重复调查数据 opinion lt c gov market
  • 为什么调用该函数? JavaScript / 窗口

    我的 HTML 文件中有以下代码
  • 在自定义/用户控件 (Winforms) 中添加对嵌套容器的设计时支持

    我有类似于向导控件的东西 中间是一个我想用来放置任何子控件的面板 我发现使用 ScrollableControlDesigner 将允许将删除的控件添加到自定义 用户控件中 但这不是我所需要的 它需要添加到容器中 以便可以应用布局而不影响
  • 使用 re.sub 和多次替换仅替换捕获的组

    下面只是我创建的一个简单示例 string I love sleeping I love singing I love dancing pattern re compile r I love w 我只想用 re sub 替换 w 部分 这个
  • C# 基类方法使用的成员变量重写

    好吧 我承认这有点奇怪 但它确实有一个合乎逻辑的目的 我在当前项目中使用 C 并试图找到一种方法来重写派生类中的成员变量 但在基类方法中访问被重写的变量 为了让事情变得更 有趣 如果重写的成员变量是静态的 这在下面的示例代码中没有显示 那就
  • Delphi中简单的读/写记录.dat文件

    由于某种原因 即使我昨天使用过 我的 OpenID 帐户也不再存在 但不管怎么说 我需要将记录数据保存到 dat 文件中 我尝试了很多搜索 但都是与数据库和BLOB的东西有关 我无法从中构建任何东西 我有以下记录 type Scores r
  • Cassandra 中的 IN 关系对查询不利吗?

    给出 CQL 中以下选择的示例 SELECT FROM tickets WHERE ID IN 1 2 3 4 给定 ID 是分区键 使用 IN 关系比执行多个查询更好还是没有区别 我记得不久前在 Cassandra 用户邮件列表中看到有人
  • Python argparse --toggle --no-toggle 标志

    有没有简单直接的使用方法 toggle and no togglePython 的 argparse 的标志 现在我正在使用类似于以下内容的东西 import argparse parser argparse ArgumentParser
  • for循环条件下方法调用的效率

    我正在编写一个游戏引擎 其中一组对象保存在一个ArrayList使用 for 循环进行迭代 显然 效率相当重要 所以我想知道循环的效率 for String extension assetLoader getSupportedExtensi