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 我必须使用neuralnet多项式分类问题的包 所有示例均针对二项式或线性输出 我可以使用二项式输出进行一些一对一的实现 但我相信我应该能够通过使用 3 个单元作为输出层来做到这一点 其中
  • 在zooreg时间序列中查找非唯一索引条目时遇到问题

    我有几年的数据正在尝试将其转化为动物园对象 Dropbox 上的 csv https www dropbox com sh vg8w8pt16e0v3xs AABKtWqDkPu9JVKpwBXO36VOa dl 0 一旦数据被强制转换为动
  • R 3.5 - read.csv 无法读取 UTF-16 csv 文件

    我的代码如下 read csv http asic gov au Reports YTD 2018 RR20180420 001 SSDailyYTD csv skip 1 fileEncoding UTF 16 sep t header
  • ggplot2 中的中心图标题

    这个简单的代码 以及今天早上我的所有脚本 已经开始在 ggplot2 中给我一个偏离中心的标题 Ubuntu version 16 04 R studio version Version 0 99 896 R version 3 3 2 G
  • 在列标题和配对变量中嵌入数据的数据透视表

    假设我有这样的数据 不幸的是 变量值嵌入在列名称中 library tidyr library dplyr dat lt tribble group var1 var meta1 var2 var meta2 group1 5 2 cat
  • ggplot2 + 使用比例 X 的日期结构

    我真的需要帮助 因为我已经迷路了 我正在尝试创建一个折线图 显示几个团队一年来的表现 我将一年分为几个季度 2012 年 1 月 1 日 2012 年 4 月 1 日 2012 年 8 月 1 日 12 1 12 并将 csv 数据帧加载到
  • ggplot 按因子和梯度颜色

    我正在尝试绘制一个对两个变量 一个因子和一个强度 进行着色的图 我希望每个因素都是不同的颜色 并且我希望强度是白色和该颜色之间的渐变 到目前为止 我已经使用了诸如对因子进行分面等技术 将颜色设置为两个变量之间的相互作用 并将颜色设置为因子并
  • 如何在闪亮的observeEvent中监听多个事件表达式

    我想要两个不同的事件触发观察者 有人建议here https stackoverflow com questions 34731975 how to listen for more than one event expression wit
  • ggplot:类似于scale_color_steps()的有序因子的色标

    With scale color steps 我们可以通过设置low和high争论 一个例子 df lt data frame x rnorm 99 y rnorm 99 col rnorm 99 ggplot df aes x y col
  • 在 R 中计算大矩阵的零空间

    我找不到任何函数或包来计算 a 的零空间或 QR 分解 bigmatrix from library bigmemory 在 R 中 例如 library bigmemory a lt big matrix 1000000 1000 typ
  • 为特定 ID 重新编码列中的观察结果

    我有一个数据集 称为 调查 其中有行是个人 ID 列中有许多问题 我需要将 1 列中的值重新编码为 NA 并将观察结果移至另一列 例如 ID Fruit Vegetable aaa NA grape bbb NA tomato ccc ap
  • Rcpp 包不包含 Rcpp_precious_remove

    我一直在尝试创建数据库并安装 DBI 包 但仍然遇到此错误 我重新安装了 DBI 和 RSQLite 软件包 但它们似乎不起作用 library DBI con lt dbConnect RSQLite SQLite dbname memo
  • GLMER 警告:方差-协方差矩阵 [...] 不是正定的或包含 NA 值

    我有时发现我的 GLMM 来自glmer 包裹lme4 当调用其摘要时显示以下警告消息 Warning messages 1 In vcov merMod object use hessian use hessian variance co
  • 按新年拆分日期行

    我有来自一家医院的包含许多变量的数据 以及每行的起始日期和截止日期 这告诉我们每行何时 有效 每行的有效期最长为一年 test data frame ID c 10 10 10 12 12 Disease c P P P D P Pass
  • 错误:美学必须是长度一,或者在省略 NA 时与 dataProblems:personCategoryz 的长度相同

    我正在尝试使用泰坦尼克号数据集创建一个图表 该数据集查看女性 儿童和男性及其生存率 我创建了新的类别来读取数据 但当我尝试超越该点时 不断出现错误消息 当我运行一个图表来显示这一点时 它显示得很好 只是它有一个单独的 NA 数据类别 所以我
  • R 中 optim() 的优化(L-BFGS-B 需要“fn”的有限值)

    我在 R 中使用 optim 来求解涉及积分的可能性时遇到一些问题 我收到一条错误消息 optim par c 0 1 0 1 LLL method L BFGS B lower c 0 L BFGS B 需要 fn 的有限值 中的错误 下
  • “x[] <- as.integer(x)”是什么意思

    当我阅读 R 手册时 我遇到了如下代码行 从 R 手册中的 colSums 复制 x lt cbind x1 3 x2 c 4 1 2 5 dimnames x 1 lt letters 1 8 x lt as integer x 有人能告
  • R:使用数据框 A 中某个日期之前的值填充数据框 B 中的行

    这可能非常复杂 我怀疑需要先进的知识 我现在有两种不同类型的 data frames 我需要组合 数据 数据框A 按患者 ID 列出所有输血日期 每次输血均由单独的行表示 患者可以进行多次输血 不同的患者可以在同一天进行输血 Patient
  • R ggplot:加权 CDF

    我想使用绘制加权 CDFggplot 一些旧的非 SO 讨论 例如this https stat ethz ch pipermail r help 2012 October 337288 html从 2012 年起 建议这是不可能的 但我想
  • 时间序列,将月度数据改为季度

    现在我有一些每月数据 例如 1 1 90 620 2 1 90 591 3 1 90 574 4 1 90 542 5 1 90 534 6 1 90 545 etc 如果我使用 ts 函数 很容易将数据转换为时间序列结构 例如 Jan F

随机推荐

  • 如何使用 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 然而 我得到了相反的结果 我的问题是 是否可以 应该执行任何