用Java或Javascript处理JSON更好吗?

用Java或Javascript处理JSON更好吗?,java,javascript,json,Java,Javascript,Json,真的很简单。我有大量的JSON要处理,总共100GB。这100GB被分为多个文件,每个文件通常为1mb 因此,这让我想知道,通常来说,用Javascript解析JSON文件会更快,还是使用Java的JSON JAR处理文件会有类似的结果 现在很明显,我必须多线程处理这一切等等 我认为用java处理会更容易、更快、更容易扩展(ThreadPoolExecutor)。 您打算如何使用javascript实现它?单机版v8?如果您知道,我会使用Node.js。在基于Javascript构建的环境中更好

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

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


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

我认为用java处理会更容易、更快、更容易扩展(ThreadPoolExecutor)。
您打算如何使用javascript实现它?单机版v8?

如果您知道,我会使用Node.js。在基于Javascript构建的环境中更好地处理JSON对象使用您最擅长的任何技术,产生巨大性能差异的可能性都很低。V8(谷歌的JavaScript引擎——在Chrome浏览器和非浏览器环境中的NodeJS中最为著名,但也可以独立运行)速度惊人,Sun/Oracle的JVM凭借其出色的热点优化技术也是如此。如果愿意,您甚至可以在JVM上使用JavaScript()

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


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

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

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

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

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


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

Node.js可以很好地完成分叉作业和运行多个-threaded@user:是的,这就是为什么我删除了我的评论:)在数据被解析后,你在对数据做什么?这是另一个需要考虑的问题。这里重要的一点是100GB不适合主内存,所以I/O性能可能是瓶颈,应该优化而不是处理代码。所以他们不需要记忆。说到这里,我想看看java对内存映射文件的支持(在nio包下)——我不认为node.js有任何等价物?它有什么更好的地方?JSON是一种可移植的格式。根据我的经验,Java在处理它方面做得相当好。