Android 读取大变量数组的最快方法

2024-04-21

在我的应用程序中,我需要找到一种更快的方法来加载大数组Integer and Float变量。什么大道

  1. 直接使用 Java 代码创建数组 - 这不起作用,因为我的应用程序使用的数组非常大,有 200 000+ 浮点值,这会导致java code too large错误,我找不到任何解决方法。

  2. 尝试使用以下命令在项目中导入这些数组xml这也不起作用,因为文件大小变得非常大,我什至无法构建。

  3. 到目前为止有效的事情,我已经添加了txt文件在assets文件夹,使用读取它们InputStream,将它们解析为浮点数/整数并动态创建数组,但这太慢了。

我拥有这些大数组的原因是,因为我的项目使用 Vuforia 来显示 3D 模型,它需要将它们表示为浮点/整数数组(顶点、文本坐标、法线、索引),但加载 12 个模型需要太多时间。

我很想获得一些建议/建议如何加快加载过程。

提前致谢!


我还没有对此进行基准测试,但(可能)是最快的simple读取大量整数和浮点值的方法是使用DataInputStream及其各种readXxx()方法。

如果数据是同构的,那么您可能可以使用以下方法获得更快的传输速度FileChannel, ByteBuffer和(说)DoubleBuffer。该方法描述如下:“以java快速方式写入/读取浮点数组 https://stackoverflow.com/questions/22249483/write-read-float-array-in-java-fast-way“。(感谢@greenapps ...)但是,如果数据是异构的,即不同原始类型的混合,那么要使其发挥作用将很困难。

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

Android 读取大变量数组的最快方法 的相关文章

随机推荐

  • 在 NAnt 构建脚本中处理密码

    有没有办法在 NAnt 构建期间提示用户输入 我想执行需要密码的命令 但我不想将密码放入构建脚本中 我现在正在使用脚本 但我很想听听是否有可用的预构建方法 非常感谢 sundar 的 ForegroundColor 技巧 我不确定你使用 P
  • 使用 MYsql 5.6 内存缓存

    我想我一定错过了一些非常明显的东西 但我想做的是使用 MySQL 5 6 并通过 memcache 返回值 所以我已经设置MYSQL来使用memcache插件 在innodb memcache containers表中设置详细信息 我现在该
  • Linux malloc() 在 ARM 和 x86 上的行为是否不同?

    这个网站上有很多关于内存分配的问题 但是我 找不到专门解决我的问题的人 这 问题 https stackoverflow com questions 19148296 linux memory overcommit details似乎最接近
  • 默认构造函数不初始化类的实例成员?

    我遇到了一个问题 关于 默认 构造函数 以下哪一项是正确的 和一个选项 它初始化类的实例成员 是错误的选择 现在我的理解是 如果我们有这样的代码 Class Test String name 然后编译器创建默认构造函数 如下所示 Class
  • 使用 phpStorm 在 Symfony 3.2.4 中进行功能测试

    我在 Symfony 3 2 4 中设置功能测试时遇到困难 namespace Tests AppBundle Controller use Symfony Bundle FrameworkBundle Test WebTestCase c
  • Powershell函数在文本文件中替换或添加行

    我正在编写一个修改配置文件的 powershell 脚本 我有这样的文件 comment about logentrytimeout Logentrytimeout 1800 谁应该看起来像这样 comment about logentry
  • 在 Google Apps 脚本中捕获电子表格应用程序模式对话框的 onClose 事件

    我想在模态对话框 使用打开 时执行一些操作showModalDialog https developers google com apps script reference base ui showModalDialog Object St
  • 如何从序言中的列表中删除列表?

    我想在序言中实现以下问题 Given L1 1 2 3 4 and L2 2 3 4 调用名为remove list L1 L2 L 的函数将从L1中删除L2 所以L将是 1 但是 如果第二个列表的元素与 L1 中的元素顺序不同 或者更准确
  • 按钮需要点击 2 次才能换出 div

    单击按钮时 我有一个简单的 div 交换 但是 当页面首次加载时 需要用户单击按钮两次才能使该功能起作用 之后一切正常 请问有什么建议吗 My code
  • 使用 MATLAB 读取 CSV 文件?

    我正在尝试使用 MATLAB 读取 csv 文件 这是我的代码 csvread out2 csv out2 csv 如下所示 03 09 2013 23 55 12 129 32 129 33 03 09 2013 23 55 52 129
  • 在选项卡之间切换时保留绘图和输入值

    我有一个闪亮的仪表板应用程序 带有两个不同的选项卡面板 每个选项卡都有不同的输入值 当单击操作按钮时 它们都会生成一个图表 每当我在这些选项卡之间切换时 它们各自的图表就会消失 并且输入值会重置为默认值 即使用户决定在面板之间切换 我也希望
  • Resteasy 破坏多部分/表单数据 POST 请求上的文件名编码

    我将文件上传到以下带注释的 Restservice POST Path uploadFile Consumes multipart form data public Response uploadFile MultipartFormData
  • 创建 Tform2 时显示消息?

    我想在创建 Tform2 时向用户显示一条消息 我使用这段代码 但效果不好 procedure TForm1 Button1Click Sender TObject var a TForm2 begin if a nil then begi
  • 解析返回给 Gattle 的 Json 响应

    我正在尝试解析服务器返回给加特林的 json 响应 我的服务器响应是 SessionAttribute Session GetServices 3491823964710285818 0 Map gatling http cache eta
  • Bootstrap 预滚动 DIV 的固定高度

    在我的应用程序中 我必须显示数据库记录的 bootsatarp 网格 由于记录数足够大 无需整页滚动即可查看 因此我用 bootstrap 预滚动 div 包裹了表格 它为我提供了滚动表格的功能 然而 DIV 大小始终是浏览器窗口的一半 我
  • 递归数据和组件,稍后获取会抛出错误

    首先我的 graphql 数据模型 type Human id String name String children Human 我使用的唯一路线 中继路线配置 class extends Relay Route static queri
  • 如何使用java代码在Windows中打开应用程序(任务管理器->应用程序选项卡内容)

    下面一个用于从 Windows 获取进程列表 Process proc Runtime getRuntime exec tasklist exe 但我想获取应用程序选项卡内容本身 我需要一个解决方案 Process proc Runtime
  • 如何在camel Rest中验证JSON请求

    我需要根据某种模式验证对骆驼休息服务的传入请求 例如 根据要求 如下所示 routeId fileBatchRoute action start sourceLocation sourceDirectory destinationLocat
  • 在c#中将金额转换为单词格式的卢比和佩斯

    我有 Windows 应用程序 需要将文本框中输入的金额转换为卢比和派斯格式的单词 例如我的金额是2356 54那么它应该显示two thousand three hundred fifty six ruppes and fifty fou
  • Android 读取大变量数组的最快方法

    在我的应用程序中 我需要找到一种更快的方法来加载大数组Integer and Float变量 什么大道 直接使用 Java 代码创建数组 这不起作用 因为我的应用程序使用的数组非常大 有 200 000 浮点值 这会导致java code