当前位置: 首页 > article >正文

什么是海量数据?

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个案例分析》吴鹏
http://www.lryc.cn/news/2414555.html

相关文章:

  • NEMA协议解析 (GPS标准协议)
  • Socket通信介绍
  • Android基础入门教程——10.4 Vibrator(振动器)
  • 归一化(normalization)、标准化(standardization)以及正则化(regularization)比较
  • 数据结构学习笔记之二叉排序树、平衡二叉树和最优带权二叉树
  • 什么是UMD
  • 32*32 点阵字库 linux,点阵字库-linux_wuliqiang-ChinaUnix博客
  • Preparedstatement的使用
  • 达梦数据库分区表
  • 皮尔森、斯皮尔曼,肯德尔相关系数及其python实现
  • adb工具包的安装和使用
  • 如何在windows上搭建DZ(Discuz!)论坛?
  • Jqgrid教程(简单上手)
  • C# 正则表达式完全指南:基础、进阶与实战示例
  • C语言 | 指针详解
  • Linux命令之pkill命令
  • 必收藏:最全SQL讲解!
  • WSUS服务的部署
  • CTex下载地址和方法
  • Tomcat启动成功但是无法访问http://localhost:8080/
  • gcc编译器及C语言基础
  • ISE工程建立(含IP核建立)和chipscope实验
  • ARM学习-ARM指令集详解
  • 数据结构typedef、L和*L、Elemtype *elem和Elemtype elem[maxsize]
  • Quartus-II13.1三种方式实现D触发器及时序仿真
  • Python详细介绍及使用(基础篇)
  • openfire学习之安装
  • Linux下 itoa,atoi 函数的实现
  • 三维重建(7)--运动恢复结构SfM系统解析
  • 无线渗透----扫描附近WiFi(windows系统)