RJSONIO 与 rjson - 更好的调整

2023-12-27

UPDATE:

The tl;dr就是它RJSONIO不再是两个选项中更快的一个。相当rjson现在速度快多了。

请参阅评论以进一步确认结果


我的印象是RJSONIO应该比rjson.
然而,我得到了相反的结果。

我的问题是:

  • 是否可以/应该执行任何调整来改善结果RJSONIO? (即,我忽略了什么吗?)

以下是使用真实数据的比较(其中U是 json 网页的内容),然后是一个模拟的 json

## REAL DATA
library(microbenchmark)
> microbenchmark(RJSONIO::fromJSON(U), rjson::fromJSON(U))

Unit: milliseconds
                  expr       min        lq    median        uq      max
1   rjson::fromJSON(U)  29.46913  30.16218  31.74999  34.11012 158.6932
2 RJSONIO::fromJSON(U) 175.11514 181.67742 186.52871 195.90646 414.6160

> microbenchmark(RJSONIO::fromJSON(U, simplify=FALSE), rjson::fromJSON(U))
Unit: milliseconds
                                    expr       min       lq    median        uq        max
1                     rjson::fromJSON(U)  27.92341  28.7430  29.60091  30.63291 1 143.9478
2 RJSONIO::fromJSON(U, simplify = FALSE) 173.30136 179.5815 183.94315 190.17245 2 328.8996

带有模拟数据的示例

(类似结果)

# MOCK DATA
U <- toJSON(list(1:10, LETTERS, letters, rnorm(20)))

microbenchmark(RJSONIO::fromJSON(U), rjson::fromJSON(U))
# Unit: microseconds
#                   expr     min       lq   median       uq      max
# 1   rjson::fromJSON(U)  94.788 100.8650 105.6035 111.0740 3457.479
# 2 RJSONIO::fromJSON(U) 520.131 527.7775 533.2715 555.2415  942.136

示例 2 与iris dataset

Iris.JSON <- toJSON(iris)

microbenchmark(RJSONIO::fromJSON(Iris.JSON), rjson::fromJSON(Iris.JSON))
# Unit: microseconds
#                           expr      min       lq   median       uq       max
# 1   rjson::fromJSON(Iris.JSON)  229.669  235.571  238.511  241.423   260.164
# 2 RJSONIO::fromJSON(Iris.JSON) 1209.607 1224.793 1232.165 1238.953 12039.772

> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] data.table_1.8.8 stringr_0.6.1    RJSONIO_1.0-1    rjson_0.2.11

loaded via a namespace (and not attached):
[1] plyr_1.7.1

> library('BBmisc')
> suppressAll(lib(c('RJSONIO','rjson','jsonlite','microbenchmark')))
> U <- toJSON(list(1:10, LETTERS, letters, rnorm(20)))
> microbenchmark(
+     rjson::toJSON(U),
+     RJSONIO::toJSON(U),
+     jsonlite::toJSON(U, dataframe = "column"),
+     times = 10
+ )
Unit: microseconds
                                      expr     min      lq      mean   median      uq       max neval cld
                          rjson::toJSON(U)  65.174  68.767 2002.7007  88.2675 103.151 19179.224    10   a
                        RJSONIO::toJSON(U) 299.186 304.832  482.8038 329.7210 493.683  1351.727    10   a
 jsonlite::toJSON(U, dataframe = "column") 485.985 501.381  555.4192 548.5935 587.083   708.708    10   a

测试 system.time()

> microbenchmark(
+     system.time(rjson::toJSON(U)),
+     system.time(RJSONIO::toJSON(U)),
+     system.time(jsonlite::toJSON(U, dataframe = "column")),
+     times = 10)
Unit: milliseconds
                                                   expr      min       lq     mean   median       uq      max neval cld
                          system.time(rjson::toJSON(U)) 112.0660 115.8677 119.8426 119.8372 121.6908 132.2111    10  ab
                        system.time(RJSONIO::toJSON(U)) 115.4223 118.0262 129.2758 120.5690 148.5175 151.6874    10   b
 system.time(jsonlite::toJSON(U, dataframe = "column")) 113.2674 114.9096 118.0905 117.8401 120.9626 123.6784    10  a

下面是几个封装的比较。希望这些链接有帮助...

1) 新包:jsonlite。智能(呃)JSON 编码器/解码器。 http://www.r-bloggers.com/new-package-jsonlite-a-smarter-json-encoderdecoder/

2) 改进了 jsonlite 0.9.15 中的内存使用和 RJSONIO 兼容性 http://www.r-bloggers.com/improved-memory-usage-and-rjsonio-compatibility-in-jsonlite-0-9-15/

3) R 中 JSON 包的偏见比较 https://rstudio-pubs-static.s3.amazonaws.com/31702_9c22e3d1a0c44968a4a1f9656f1800ab.html

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

RJSONIO 与 rjson - 更好的调整 的相关文章

  • 计算一列中正数和负数的数量

    我想计算数据帧的一列中正值和负值的数量 我在 R 中该怎么做 例如 这里是数据框 logFC logCPM LR PValue FDR Bra15066 5 630822 5 184586 73 79927 8 647868e 18 4 0
  • LaTex 中与 knit 和 xtable 交叉引用的问题

    我目前正在与 R Studio 合作 使用 LaTex 中的 R knitr 生成 PDF 文档 在这些文档中 我想在文本中引用的表格中展示我的部分结果 我使用 R 中的 xtable 包生成这些表 它运行良好并为我提供了正确的表 到目前为
  • 如何获得 STAN 中最大似然估计的标准误差?

    我在 Stan 中使用最大似然优化 但不幸的是optimizing 函数不报告标准错误 gt MLb4c lt optimizing get stanmodel fitb4c data win data init inits STAN OP
  • 如何在R中计算文本中的句子数?

    我使用 R 将文本读入readChar 功能 我的目的是测试文本句子中字母 a 出现次数与字母 b 出现次数一样多的假设 我最近发现了 stringr 包 它帮助我对文本做很多有用的事情 例如计算字符数以及整个文本中每个字母出现的总数 现在
  • 返回数据帧 R 中的下一行

    我有一个看起来像这样的数据框 kind datetime book 2016 04 23 04 23 00 pen 2016 04 23 04 30 00 toy 2016 04 23 06 45 00 我想为数据集中的每一行返回下一行的日
  • 将 Instagram/youtube 嵌入 Shiny R 应用程序

    我想通过点击图表来播放 Instagram 或 Youtube 视频 例如显示异常值等 到目前为止 明确告诉 Shiny 视频内容是有效的 require shiny require ggplot2 data df lt data fram
  • 计算例如具有多列 data.frames 的列表中的平均值

    我有几个 data frames 的列表 每个 data frame 有几列 通过使用mean mylist first dataframe a我可以得到这个 data frame 中 a 的平均值 但是我不知道如何计算列表中存储的所有 d
  • 将年月格式转换为 POSIXct [重复]

    这个问题在这里已经有答案了 我有一些年月形式的数据 我想将其格式化以用于绘图ggplot date lt c 2016 03 2016 04 2016 05 2016 06 2016 07 2016 08 2016 09 2016 10 2
  • 如何在for循环中引用变量?

    我正在循环访问不同的 data tables 和 data table 中的变量 但我在引用内部变量时遇到问题for loop dt1 lt data table a1 c 1 2 3 a2 c 4 5 2 dt2 lt data tabl
  • 在 R 中创建一个运行计数变量?

    我有一个足球比赛结果的数据集 我希望通过创建一组类似于世界足球 Elo 公式的运行评级来学习 R 我遇到了麻烦 在 Excel 中看似简单的事情在 R 中并不完全直观 例如 4270 个观察中的前 15 个具有必要的变量 date t 1
  • 如何用外部图像填充地图边界?

    我正在创建一张带有州边界的巴西地图 这可以直接使用ggplot2 and geom sf 然而 这一次 我不想用数据填充每个状态的颜色 而是想用外部图像 png 填充每个状态的边界 类似于this https online olivet e
  • 如何从 Fortran 调用 R 函数?

    根据http gallery rcpp org articles r function from c http gallery rcpp org articles r function from c Rcpp 允许用户从 C 调用 R 函数
  • R foreach问题(某些进程返回NULL)

    我遇到了问题foreach我正在 R 中使用的程序的一部分 该程序用于运行不同参数的模拟 然后将结果返回到单个列表 然后用于生成报告 当并非所有分配的模拟运行都在报告上实际可见时 就会出现问题 从各方面来看 似乎只有分配的运行的一个子集实际
  • 如何删除箱线图上的刻度线

    我试图从箱线图中删除 x 轴刻度线 但保留与刻度线关联的标签 这在基础 R 中可能吗 colors lt c lightskyblue3 gray78 gold1 wheat1 boxplot avgscore module data mi
  • 我无法下载 R 中的 reshape2 包 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试安装 R 包时收到此响应 gt installed packages reshape2 Package LibPath V
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • pyomo + 网状错误 6 句柄无效

    我正在尝试运行pyomo优化 我收到错误消息 Error 6 The handle is invalid 不知道如何解释它 环顾四周似乎与特权有关 但我不太明白 在下面找到完整的错误跟踪以及重现它的玩具示例 完整的错误跟踪 py run f
  • 将数据框中重叠的范围合并到唯一的组中

    我有一个 n 行 3 的数据框 df lt data frame start c 178 400 983 1932 33653 end c 5025 5025 5535 6918 38197 group c 1 1 2 2 3 df sta
  • 将阴影区域添加到五分位数之间的直方图中

    All 我有一个包含 2 个直方图的图表 其中我还绘制了代表第 20 40 60 和 80 个百分位数的线条 下面的代码使用虚拟数据重现了类似的图表 data lt rbind data frame x rnorm 1000 0 1 g o
  • 文本挖掘 pdf 文件/词频问题

    我正在尝试挖掘一篇具有丰富 pdf 编码和图表的文章的 pdf 我注意到 当我挖掘一些 pdf 文档时 我得到的高频词是 phi taeoe toe sigma gamma 等 它与某些 pdf 文档配合良好 但与其他文档配合使用时却得到这

随机推荐

  • 如何使用 Cassandra 存储后端删除 Titan 中的图形?

    我使用 Titan 0 4 0 All 在 Ubuntu 12 04 上以共享 VM 模式运行 Rexster 如何正确删除 Titan 中使用 Cassandra 存储后端的图表 我已经尝试过TitanCleanup clear grap
  • 使用 ImageView 时出现内存不足错误

    我正在尝试使用 ImageView 制作壁纸设置应用程序 我知道很难显示一堆图像 特别是当图像为 1920x1080 时 我所做的是制作其他一堆具有较小分辨率 400x200 的图像 这些图像将显示在应用程序中 但是当用户尝试设置时将图像作
  • 如何获取 JSpinner 中所选项目的值?

    我正在制作一个使用最大数量为 30 的 JSpinner 的应用程序 我应该从这个 JSpinner 中选择一个值并将一个字符串粘贴到 JTextField 中 结果将出现在 Textarea 中 当我编译时 我有很多关于该方法的问题jSp
  • Android 和 OpenCV:考虑相机本质和反向投影的相机姿势单应性

    库 OpenCV 目标 Android OpenCV4Android 我尝试计算世界平面 例如监视器屏幕 的单应性以获取相机姿势 对其进行变换并将点重新投影回以进行跟踪任务 我使用 OpenCVs findHomography getPer
  • 带索引二维数组的逗号运算符

    我有这个算法 它是图论 dijkstra 算法的伪代码 首先进行的是基本的 for 循环 visitedSet 0 true visitedSet is a array of bools for int i 1 i lt numberNod
  • 防止 html 元素在分辨率太小时被挤压

    我看到像亚马逊和谷歌这样的网站 当你缩小网络浏览器的宽度时 元素只会挤压到某个点 然后即使你进一步缩小宽度 它也会停止挤压 什么样的技术可以实现这一点 是否有特定的 CSS 属性可以启用此功能 您可能正在看到min width and mi
  • 视图应该设置模型数据吗?

    我只是想弄清楚一个可能很简单的问题 视图应该直接设置模型数据还是只调用更改其自身数据的模型方法 就像软件开发中的其他事情一样 视情况而定 如果您在视图中使用表单输入 并且只需将这些输入中的数据获取到模型中 请直接设置数据 您可以通过多种方式
  • textView.getSelectionEnd() 返回 Samsung Marshmallow 6.0 设备上的起始索引值

    此问题是在以下位置观察到的搭载 Android 6 0 的三星设备仅有的 它在所有其他设备上运行良好 包括运行 Android 6 0 的非三星设备和运行 Android 5 1 及更低版本的三星设备 目前我们还没有任何搭载 Android
  • 调试 - 在 Xamarin.Forms Android 应用程序中引用 .NET 标准 1.4 库 (VS 2017)

    我用的是VS 2017 我有 Xamarin Forms Android 项目 我必须在那里引用一堆 NetStandard 1 4 库 我将所有项目都集中在一个解决方案中 我基本上添加了参考文献并编译了解决方案 没有任何问题 当我从 Ne
  • 从java获取HDFS的文件夹大小

    我必须确定 HDFS 文件夹的大小 其中包含来自 java 的子目录 从命令行我们可以使用 dus 选项 但是任何人都可以帮助我如何使用 java 获得相同的选项 The getSpaceConsumed 函数在ContentSummary
  • 找到登录的gmail用户的电子邮件地址

    我正在开发 chrome 扩展 该扩展仅专注于 Gmail 消息 该扩展名仅在 Gmail 消息中使用 但为此我需要找出登录用户的电子邮件地址 我已经创建了登录功能来使用弹出窗口中的扩展程序 并且我需要 登录用户电子邮件地址 来检查登录扩展
  • vs2010 c# 调试高亮颜色

    场景是我正在vs2010中调试一些C 代码 我停在断点处 我进入一个方法 当前行以黄色突出显示 我认为默认情况下 我在进入该方法之前留下的行现在具有浅灰色背景 如果你有深色文本还不错 但我有白色文本 根本读不懂 所以 我想改变它 但它叫什么
  • 是否可以将一个 ObservableField 绑定到另一个 ObservableField?

    我明白这样做的目的Android 的数据绑定库 https developer android com tools data binding guide html用于观察数据并在数据更改时自动更新的视图 问题 数据是否可以观察其他数据 例如
  • 如何在详细信息PreferenceFragment中加载相同的屏幕首选项

    我正在尝试做类似 Android 平板电脑中的设置首选项之类的事情 当我单击 更多 时 无线和网络 首选项屏幕将显示在右侧片段上 如果我触摸 VPN 则会在同一片段中打开 VPN 首选项屏幕 我怎样才能做到这一点 这是我的偏好 xml
  • 如何创建自定义 JVM? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在阅读第 6 10 条http www cafeaulait org javafaq html http www cafeaula
  • 使用 Newtonsoft 将 JSON 反序列化为 .NET 对象(或者可能使用 LINQ to JSON?)

    我知道有一些关于 Newtonsoft 的帖子 所以希望这不是重复 我正在尝试将 Kazaa 的 API 返回的 JSON 数据转换为某种不错的对象 WebClient client new WebClient Stream stream
  • 在 doxygen 输出中隐藏公共包

    给定一些包foo bar project something FirstModule foo bar project something SecondModule等等 他们都有那么长foo bar project something共同点
  • 使用 Vue 3 + vue-class-component + TypeScript 进行 Vuelidate

    有谁知道上述堆栈的任何工作示例 我知道 Vuelidate 在 Vue 3 方面仍然是 alpha 但我的猜测是 如果它可以与 Composition API 一起使用 那么应该有一个解决方法可以使其与类一起使用 我正在尝试以下简单示例
  • Gulp 处理目录中的所有文件

    我的目录 和子目录 中有 css 和 js 文件 我正在研究不同的工具来压缩所有目录中的资产 我正在尝试找到一种方法让 gulp 压缩这些目录中的所有文件并将压缩文件保存在same目录并按以下约定命名 名称 min css or 名称 mi
  • RJSONIO 与 rjson - 更好的调整

    UPDATE The tl dr就是它RJSONIO不再是两个选项中更快的一个 相当rjson现在速度快多了 请参阅评论以进一步确认结果 我的印象是RJSONIO应该比rjson 然而 我得到了相反的结果 我的问题是 是否可以 应该执行任何