在javascript中处理大型CSV文件

在javascript中处理大型CSV文件,javascript,performance,extjs,d3.js,client-server,Javascript,Performance,Extjs,D3.js,Client Server,我需要你们的建议。当我试图处理一个大的csv文件时,我对一些问题感到困惑。我现在做的是使用Javascript(客户端语言)来显示一些基于csv文件数据的图表。我正在使用D3和ExtJS4.2来实现这一点 问题是,当我试图处理包含10000行和至少5列的大型csv文件(在文件中搜索并根据列中的值进行大量计算)时,需要花费大量时间,有时浏览器会崩溃。我想要一些关于如何提高应用程序性能的建议 使用javascript进行复杂计算是正常的还是javascript无法进行复杂计算 一些解释: 事实上,c

我需要你们的建议。当我试图处理一个大的csv文件时,我对一些问题感到困惑。我现在做的是使用Javascript(客户端语言)来显示一些基于csv文件数据的图表。我正在使用D3和ExtJS4.2来实现这一点

问题是,当我试图处理包含10000行和至少5列的大型csv文件(在文件中搜索并根据列中的值进行大量计算)时,需要花费大量时间,有时浏览器会崩溃。我想要一些关于如何提高应用程序性能的建议

使用javascript进行复杂计算是正常的还是javascript无法进行复杂计算

一些解释:

事实上,csv文件中的每一行至少包含5列(关键字、value1、value2…value4),我需要为每一列(值:1…4)绘制一个斧头,除了第一列(关键字):d3中的平行坐标。 对于每一列,当我有相同值的关键字时,我必须添加到坐标X(dx),例如: 例如,当我在第二列中有3个关键字具有相同的值时,我将第一个关键字放在p(x,y)中,第二个关键字放在p(x+dx,y)中,第三个关键字放在p(x-dx,y)中,这样它们在图中彼此相邻,而不是重叠。 因此,我需要加载所有文件行,对于每一列,我必须搜索重复的值以计算其坐标x,y,然后将它们保存在数组中,因为我以后需要使用它们。 在我的申请中。
另一方面,我有一个工具来选择每个斧头周围的区域-套索选择-以获得该区域中的所有点。在这里,每次我使用套索工具,我必须搜索每个值,如果它是在该地区或没有,当我有10000线,这将需要很长时间来做

我想你需要先展示你的代码,然后才有人可以帮你。我考虑过这个问题,但我在不同的js和html文件中有大约2500行代码,所以很难像我想的那样清晰地展示出来。。如果需要,可以通过任何方式加载csv的部分。例如,在我构建的应用程序中,不是从1个csv加载所有内容,而是我的数据集的每一年都有一个csv,并在需要时加载每个csv…感谢回答Robinal和codebox。为了更清楚地回答您的问题,我更新了我的帖子,我认为您可以使用数据操作库()来进行一些计算(聚合、按列分组、最小值、最大值、过滤器)。这有助于解决性能问题,因为库中的例程将针对此类任务进行优化。10公里也没那么大。