5
回答
请问处理大批量数据的性能问题,除了使用多线程之外还有什么办法没有?
请问处理大批量数据的性能问题,除了使用多线程之外还有什么办法没有?
<无标签>
举报
小草仙子
发帖于6年前 5回/782阅
共有5个答案 最后回答: 6年前

算法还是主要的.  如果你用Java的话,我推荐给你Hadoop.

这玩意就是干这个用的. 你可以直接看Mapreduce部分. 其实无论用什么语言,都是切割数据. 可以研究下Merge Sort算法. MapReduce模式.

多线程不是越多越好。只有两种情况下需要多线程。

1、硬件存在资源利用率不足的情况,例如你CPU不计算,在大量导入导出数据。此时另一个线程计算则利用了CPU的资源。

2、用户较多,你需要提高响应的并法度。

多线程,在任务替换中,会带来操作成本,过多的线程也会增加OS的负担和系统整体的复杂度。这里说的额外复杂度主要在因为切割了计算,导致额外的同步操作的产生。

处理大批量数据时,首先应该针对数据的特性,和操作的特性,进行分析,然后才能决定是否使用多线程。例如大批量数据作为整体的MD5,我没有仔细分析过MD5的算法。是否有并发操作的可能不知道,如果没有,那么你此时也无法切割数据分别计算。

顶部