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个字节进行计算。


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

  • 相关阅读:
    OCP-1Z0-053-V13.02-498题
    Oracle索引扫描算法
    dojo CsvStore简介
    Oracle预估的基数算法
    HTML多表头表格
    hql查询实例
    PGA突破pga_aggregate_target限制
    OCP-1Z0-053-V13.02-330题
    java 发送字节流图片,c++接收二进制流
    windows 7蓝屏解决办法
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4018376.html
Copyright © 2011-2022 走看看