zoukankan      html  css  js  c++  java
  • 普林斯顿公开课 算法1-6:内存

    讲完了算法的执行时间,如今讲一下关于算法的内存占用率。


    内存单位


    在计算机中,内存是通过字节来表示的,一个字节表示8个位。1KB是2^10字节。


    数据类型占用的内存


    在32位系统中,一个指针占用4个字节。在64位系统中一个指针占用8个字节。本课程中使用64位机器,一个指针占用8字节。

    基本数据类型


    下面是Java中基本数据类型占用的内存

    • boolean 1字节

    • byte 1字节

    • char 2字节

    • int 4字节

    • float 4字节

    • long 8字节

    • double 8字节


    Java数组


    Java中每一个数组须要24字节的额外开销,所以数组占用的内存例如以下:

    • char[] 2N+24字节

    • int[] 4N+24字节


    对于二维数组,近似的内存占用例如以下:

    • char[][] ~2MN

    • int[][] ~ 4MN


    Java对象


    每一个对象的额外开销是16字节,每一个引用的开销是8字节。对象中的每一个成员变量会依照8字节进行对齐。


    深内存和浅内存


    浅内存使用量就是将成员变量的内存占用相加。每一个引用依照8个字节进行计算。


    深内存使用量除了成员变量以外,还须要将它引用对象占用的内存计算在内。

  • 相关阅读:
    什么是 HTTPS
    首页飘雪的效果
    load data导入数据之csv的用法
    phpcms v9 配置sphinx全文索引教程
    js的一些技巧总结
    MySQL 清除表空间碎片
    使用的前台开发在线工具
    (phpQuery)对网站产品信息采集代码的优化
    永远不要打探别人工资
    git 显示多个url地址推送
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4018376.html
Copyright © 2011-2022 走看看