有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用Java或Javascript处理JSON更好吗?

真的很简单。我需要处理大量的JSON,总共100GB。这100GB被分割成通常为1mb的文件

因此,这让我想知道,通常来说,用Javascript解析JSON文件会更快吗?还是使用Java的JSON JAR处理文件会有类似的结果

现在很明显,我必须多线程处理这一切等等


共 (4) 个答案

  1. # 1 楼答案

    这两种语言都在虚拟执行环境中运行,因此执行速度将更加依赖于您使用的虚拟机,最近的虚拟机变得非常快,尤其是在最近的硬件上

    据我所知,javascript对线程没有“本机”支持。多线程是在“分时”执行中实现的,以防止锁定。但是"webworkers"似乎不再是这种情况了。你也可以将文件分割到不同的进程中,这些进程将独立处理文件。然而,这将产生大量并发磁盘访问,这很可能是你处理文件时的瓶颈

    所以我建议你使用你最熟悉的语言

    顺便说一句,介意告诉我们您将对json文件进行何种处理吗

    如果我要实现这一点:为了限制并发IO,我会有一个第一个线程,它将一次预取一个文件并将其读入内存,并让一个工作者排队处理该文件(如果处理量很大,线程池肯定会提高处理速度)

  2. # 2 楼答案

    我认为用java处理会更容易、更快、更容易扩展(ThreadPoolExecutor)。 你打算如何用javascript实现它?独立v8

  3. # 3 楼答案

    使用任何你最擅长的技术,产生巨大性能差异的可能性都很低。V8(谷歌的JavaScript引擎——在Chrome浏览器和非浏览器环境下的NodeJS中最有名,但也可以独立运行)速度惊人,Sun/Oracle的JVM凭借其出色的热点优化技术也是如此。如果喜欢(Rhino),甚至可以在JVM上使用JavaScript

    Now obviously I'd have to multi thread all of this and so on.

    这一点都不明显。如果进程是I/O绑定的(如果你正在读取1000个100MB的文件,听起来很可能是这样,这取决于你对它们做了什么),添加多个线程对你没有帮助

  4. # 4 楼答案

    如果你知道的话,我会用Node。js。在基于Javascript的环境中更好地处理JSON对象