什么是海量数据?

1.什么是海量数据?

    海量数据,顾名思义,数据量一般大得多. 海量数据一般是相对当前计算机处理能力而言 的,今天看来是海量数据,也许随着计算机硬件能力的提升在不久的将来就不算海量数据了.即使是同一时期,不同的应用领域,不同的学科以及不同的硬件条件下,海量数据所呈现的数据量也不尽相同.

    对于用户个人来说,凡是在个人计算机上处理敛据时经常出现“out of memory”提示的数据量,都可称之为海量数据·.

2.经常遇到的问题

    在有限的计算机处理能力下,我们处理海量数据经常遇到一些问题。这些问题根据表象可以分为两大类:一类是内存溢出,一类是运行及其缓慢。

    (1)导致内存溢出的主要原因
    1)变量需要的存储空间超过了可用的内存空间. 这是最简单的情况. 原因是将要生成的矩阵太大,所需存储空间超过了所有可用的内存总和。 但是很多时候矩阵需要的存储空间 大小并没有超过可用内存总和,但同样有内存溢出的错误提示,其原因见下而第2)条.

    2) 数值矩阵所需要的存储空间,超过了内存中最大的可用连续存储空间. MATLAB里默认用double型来表示数值变量,这样一个数字就需要 BB 的存储空间. 而MATLAB中的 数值矩阵存储需要内存中连续的存储空间. 这样如果内存中碎片过多.虽然可用的内存总和较大,但是最大的连续内存空间不大,这样当矩阵的元素较多时,就可能没有足够的连续内存 空间来存储,从而发生内存溢出的错误提示.

    譬如a= rand( 10000, 10000);生成10 ^8个(0, 1)之间随机分布的随机数,需要的存储空间是8×(10^8)B,大约需要800MB的连续内存空间. 如果内存中最大的连续空间都小子8×(10^8)B,那么无论所有可用的内存空间之和是否大于8×(10^8)B,MATLAB都会给出“out of memory”错误提示的.

    3)程序设计方面考虑的不用,导级内存溢出. 这方面的原因一般表现得比较隐蔽. 我们在设计一些变量较多的复杂程序时,可能没有及时释放掉一些不再会用到的变量所占用的内存 . 这样随着程序的运行,变量越来越多,内存中碎片也越来越多,再要产生新的较大的矩阵, 就可能发生内存溢出的问题。
    4)问题求解方法考虑欠周,导致内存溢出. 同样的问题,可能由多种求解方法. 不同方 法的效率以及所占用的资源相差很大。 问题规模小的时候,不用考虑这方面的问题,可是问题 规模较大的时候就必须考虑具体的求解方法了,否则就可能会由于内存溢出而无法求解问题。
    譬如符号计算。 符号计算由于其语法简单,并且和传统教科书解决问题思路一致等特点, 使得许多初学者很爱使用符号计算。 但是符号计算由于精确性,使得其在计算过程中要保留大量的中间结果,这样导致复杂的计算问题用符号计算很容易内存溢出,即使不溢出,对于很多复杂的计算问题,符号计算也无法给出解析解.
    还有当求解涉及较大规模的稀疏型矩阵的问题时,没有采用稀疏矩阵数据结构也容易导 致内存溢出。

    (2)运行极其缓慢的原因

    这是因为大数据量的处理总是伴随着大量的计算还有频繁的对内存各地址进行访问,这 些开销往往比较占用资源。 如果物理内存不够,系统开始调用页面文件来供程序使用,会使得 程序运行速度有很大程度的下降 .  


参考文献:

        [1]《MATLAB高效编程技巧与应用25个案例分析》吴鹏
  • 2
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

豌豆豆豆

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值