Java 中 int 与 float 算术效率

2024-02-16

我正在编写一个应用程序,它使用 Dijkstra 算法来查找图中的最小路径。图中节点和边的权重为float数字,因此该算法对浮点数进行许多算术运算。如果我将所有重量转换为int是? Java中int算术运算比float算术运算更快吗?

我尝试编写一个简单的基准来检查这一点,但我对得到的结果并不满意。编译器可能优化了程序的某些部分,因此结果对我来说看起来不太好。


EDIT:

我试图解决的问题属于信息检索领域。应用程序应显示作为一组关键字的查询的答案。

我的数据结构是加权有向图。给定一组叶节点,我必须找到连接这些节点的最小树并向用户显示答案。权重由部分基于 tf/idf 技术的加权函数分配。用户不知道我分配给节点和边的权重是什么,他只是想查看与他提出的查询相关的答案。因此不需要精确的结果,只需根据权重枚举答案即可。只是加权函数的本机使用(正如我提到的,它基于 tf/idf)给出了浮点权重,因此到目前为止我使用浮点。

我希望这能为这个问题增加一些背景知识。


对于简单的操作 int 更快,但是使用 int 你可能需要做更多的工作才能得到相同的结果。例如

as float

float f = 15 * 0.987;

as int

int i = 15 * 987 / 1000;

额外的除法意味着 int 运算可能需要更长的时间。

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

Java 中 int 与 float 算术效率 的相关文章

  • 将 MouseListener 添加到面板

    我正在尝试将鼠标操作添加到我的面板中 这就是程序应该做的事情 编写一个程序 允许用户通过按三下鼠标来指定一个三角形 第一次按下鼠标后 画一个小点 第二次按下鼠标后 绘制一条连接前两个点的线 第三次按下鼠标后 绘制整个三角形 第四次按下鼠标会
  • 使类只能从特定类实例化

    假设我有 3 节课class1 class2 and class3 我怎样才能拥有它class1只能通过实例化class2 class1 object new class1 但不是 class3 或任何其他类 我认为它应该与修饰符一起使用
  • 最快的高斯模糊实现

    如何以最快的速度实施高斯模糊 http en wikipedia org wiki Gaussian blur算法 我要用Java来实现它 所以GPU http en wikipedia org wiki Graphics processi
  • Java 卡布局。多张卡中的一个组件

    一个组件 例如JLabel 在多张卡中使用CardLayout 目前看来该组件仅出现在它添加到的最后一张卡上 如果有办法做到这一点 我应该吗 这是不好的做法吗 或者有其他选择吗 你是对的 它只出现在 添加到的最后一张卡 中 但这与CardL
  • Android 性能:SharedPreferences 的成本

    当我的应用程序启动时 我使用分片首选项中的值填充容器类 这个想法是处理 SharedPreferences 和 PreferenceManager 一次 因为我猜它们很重 这是一个示例 SharedPreferences prefs Pre
  • Spring中的ProxyFactoryBean

    有人可以解释一下吗代理工厂Bean http static springsource org spring docs current javadoc api org springframework aop framework ProxyFa
  • 无法访问“不安全”java方法的java表达式语言

    我正在开发一个项目 让用户向服务器提交小 脚本 然后我将执行这些脚本 有很多脚本语言可以嵌入到Java程序中 例如mvel ognl uel clojure rhino javascript等 但是 据我所知 它们都允许脚本编写者调用Jav
  • 以有效的方式从 Map 中删除多个键?

    我有一个Map
  • 无法在 Java 中输出正确的哈希值。怎么了?

    在我的 Android 应用程序中 我有一个 SHA256 哈希值 我必须使用 RIPEMD160 消息摘要算法进一步对其进行哈希值 我可以输出任何字符串的正确 sha256 和ripemd160 哈希值 但是当我尝试使用ripemd160
  • Struts 1 到 Spring 迁移 - 策略

    我有一个legacy银行应用程序编码为Struts 1 JSP现在的要求是迁移后端 目前为 MVC to Springboot MVC 后续UI JSP 将迁移到angular Caveats 1 后端不是无状态的 2 会话对象中存储了大量
  • 正确签名的 JNLP 应用程序无法在 Java 7 中运行

    我有一个 JNLP 应用程序 由于证书过期需要更新 我有一个经过 CA 验证的新证书 我已将新证书导入到我的密钥库中 我已导入完整的证书链 我的构建文件对构建中的 jar 进行签名和时间戳
  • 如何在不反编译的情况下更改已编译的.class文件?

    我想更改 class 文件方法 我安装 JD Eclipse Decompiler 并打开 class 文件 我添加了一些代码并保存 class 文件 但是 class 文件没有改变 我不知道如何使用反编译器 如果可能的话 如何在不使用反编
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • 如何减去两个 XmlGregorianCalendar 对象来创建一个 Duration 对象?

    我想计算两个时间之间的差值XmlGregorianCalendar对象 从而创建一个Duration object 但我还没有找到执行减法的干净方法 你会怎么做 那应该是 DatatypeFactory newDuration xgc2 t
  • 当底层连接是有状态时如何使用 Apache HttpClient?

    我在谷歌上搜索了很多关于如何使用 HttpClient 进行多线程处理的信息 他们中的大多数人建议使用 ThreadSafeClientConnManager 但我的应用程序必须登录某个主机 登录表单页面 以便 HttpClient 获得底
  • 删除 JFX 中选项卡后面的灰色背景

    So is there any way to remove the gray area behind the tab s 我尝试过用 CSS 来做到这一点 但没有找到方法 要设置 tabpane 标题的背景颜色 请在 CSS 文件中写入 t
  • java.lang.IllegalStateException - 提交响应后无法创建会话

    我在我的项目中使用 JSF PrimeFaces 我为此准备了一个Maven项目 当我编译项目并加载主页后 我收到以下异常 java lang IllegalStateException Cannot create a session af
  • 在实现使用原始类型的接口时如何避免警告?

    我正在实施流程工厂 http help eclipse org ganymede index jsp topic org eclipse platform doc isv reference api org eclipse debug co
  • 如何使用自定义 JDK 构建 Jenkins 项目?

    我有一个常规的 Jenkins 实例 运行一些多分支管道 该实例在 JDK 11 上运行 因为 Jenkins 并不真正支持更高版本 没关系 但不好的是 我的所有管道似乎也都受到 Java 11 的限制 Jenkins 仅使用它自己也使用的
  • Java/MongoDB 按日期查询

    我将一个值作为 java util Date 存储在我的集合中 但是当我查询以获取两个特定日期之间的值时 我最终得到的值超出了范围 这是我的代码 插入 BasicDBObject object new BasicDBObject objec

随机推荐

  • 根据文件的扩展名将文件移动到适当的位置

    我有一个清理脚本 可以根据文件的扩展名将文件移动到适当的预设位置 例如 扩展名为 xls 的文件将被移动到 XLS 文件夹 sql 会被移动到 SQL 文件夹 依此类推 这是我的脚本 dirtyfolder server c Documen
  • 使用 lxml.etree 移动整个元素

    在 lxml 中 给定一个元素 是否可以将整个元素移动到 xml 文档中的其他位置 而不必读取它的所有子元素并重新创建它 我最好的例子就是改变父母 我翻阅了一些文档 但运气不佳 提前致谢 append insert和其他操作默认执行此操作
  • 在 UIPasteBoard 中复制 NSAttributedString

    如何在粘贴板中复制 NSAttributedString 允许用户粘贴或以编程方式粘贴 使用 void paste id sender 来自 UIResponderStandardEditActions 协议 I tried UIPaste
  • 段落“

    ”填充未应用

    以下三段代码的行为完全相同 p A paragraph of text here p p A paragraph of text here p p style padding 0 15 0 15 A paragraph of text he
  • MeteorJS模板不显示数据,不出现

    我最初以为我的集合没有接收数据 但事实证明我只是在查询中出现了拼写错误 但我的数据仍然没有出现在屏幕上 HTML 模板非常基本 如下所示
  • 新 Rails 3 项目中未定义的方法 `use_transactional_fixtures='

    当我尝试使用 MongoDB 和 Mongoid 在 Rails3 项目中运行测试时遇到错误 undefined method use transactional fixtures for ActiveSupport TestCase Cl
  • 创建实现特定接口的 ATL COM 对象

    我需要实现一个简单的 ATL COM 对象 该对象实现一个特定的接口 我已为其提供了 tlb 文件和 idl 文件 该接口非常简单 仅包含一个方法 我过去创建过许多 ATL 对象 但从未创建过必须实现特定接口的对象 我需要什么才能实现这一目
  • 跟踪App Store下载源

    有没有办法追踪App Store的下载源 例如 如果我在应用程序的 Facebook 页面上发布链接 我可以知道有多少人通过该链接下载了我的应用程序吗 感谢您的回答 是的 您可以使用 Apple App Analytics 的活动链接来跟踪
  • 如何将 UILongPressGestureRecognizer 添加到 UITextField?

    我正在尝试添加UILongPressGestureRecognizer到页面上的 UITextField 之一 但长按 UiTextField 时不会调用选择器方法 我将它添加到 UItextField 但当我长按 TextField 但在
  • 如何在多个游戏对象上统一使用相同的脚本?

    我有一个脚本CoinFill这会形成一个径向进度条 当 FillAmount 1 时 我想将该特定图像重置为零 我希望能够将其用于多个GameObjects 问题是当第一次FillAmount 1 速度较快的便士 可以点击镍币 可能是50
  • std::atomic 的正确用法

    这是使用 std atomic 的正确方法吗 我有一个Logger在命名空间级别声明称为LOGGER class Logger public Logger Logger bool Init std wstring logFileLocati
  • Chrome 开发者工具:I CSS 覆盖未使用的字节

    我正在尝试从网页中删除未使用的 CSS 在 Chrome 开发者工具中 gt 单击垂直三个点 gt 更多工具 gt 覆盖范围 单击任意 CSS 我们看到一份报告 其中红色表示未使用的 CSS 绿色表示已使用的 CSS 有没有一种方法可以根据
  • 向 UIAppFonts 添加多种字体会相互覆盖

    我正在尝试通过以下方式向 iPhone 应用程序添加一些自定义字体UIAppFonts in Info plist 我可以通过代码访问这两个字体名称 即MyFont Bold and MyFont Medium 我的问题是最后一个字体UIA
  • 如何验证nestjs中的查询参数

    哟 我有 Nestjs 的商店应用程序 我需要验证 mongo id 这是通过查询传递的 问题是我也传递和搜索查询 我编写了验证所有值的管道 并排除了此搜索查询 Injectable export class ValidationObjec
  • Ada 通用平均函数

    我有一个函数可以对记录数组中的某个数值进行平均 该值可以是自然类型增量 也可以是枚举类型增量 我让它正确地总结了这些值 但我的问题是 如何将数组的长度转换为通用类型 以便它可以除以整数和增量类型数字 在记录数组上使用 长度 属性 这样做的优
  • Android 上的 Google 地图无法加载

    我的应用程序中有一个可用的 Google 地图 但我必须开始使用另一台计算机 所以我用 Android Studio 等在这台新电脑上下载了我的源代码 现在 我无法再让 Android 地图显示了 我在 Google Console 中从我
  • Hibernate 从多个表中计数

    我想编写一个 HQL 查询 从不同列的 4 个表中返回特定计数 我有4张桌子 Tab1 Tab2 Tab3 and Tab4 我想得到这样的东西 Tab1 Tab2 Tab3 Tab4 1 13 7 0 所有记录在Tab 有自己的id an
  • 如何在用 C 编写的类似 FORTH 的语言解释器中实现 LOOP

    我正在用 C 编写一种简单的基于堆栈的语言 并且想知道应该如何实现某种类型的循环结构和 或前瞻符号 由于此页面的代码有点长 超过 200 行 所以我将其放入GitHub 存储库 https github com tekknolagi Sta
  • 如何在 C# 中混合两个视频流?

    过去 我使用 Managed Direct X 和 DirectShow Net 将视频播放到简单网格上的纹理 然后 我使用相同的技术将多个视频源组合成单个纹理 并使用通过纹理公开的各种功能将这些流混合在一起 这是 2 年前的一个非常有趣的
  • Java 中 int 与 float 算术效率

    我正在编写一个应用程序 它使用 Dijkstra 算法来查找图中的最小路径 图中节点和边的权重为float数字 因此该算法对浮点数进行许多算术运算 如果我将所有重量转换为int是 Java中int算术运算比float算术运算更快吗 我尝试编