上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页
摘要: 文件系统的功能规划 对于运行的进程来说,内存就像一个纸箱子,仅仅是一个暂存数据的地方,而且空间有限。 如果我们想要进程结束之后,数据依然能够保存下来,就不能只保存在内存里,而是应该保存在外部存储中。就像图书馆这种地方,不仅空间大,而且能够永久保存。 我们最常用的外部存储就是硬盘,数据是以文件的形式保 阅读全文
posted @ 2021-07-02 18:14 hochan_100 阅读(43) 评论(0) 推荐(0)
摘要: 如何提升内存分配的效率? 或许有同学会认为,我又不写底层框架,内存分配也依赖虚拟机,并不需要应用开发者了解。如果你也这么认为,我们不妨看看这个例子:在 Linux 系统中,用 Xmx 设置 JVM 的最大堆内存为 8GB,但在近百个并发线程下,观察到 Java 进程占用了 14GB 的内存。为什么会 阅读全文
posted @ 2021-07-02 17:29 hochan_100 阅读(617) 评论(0) 推荐(0)
摘要: Buffer 和 Cache 的设计目的,是为了提升系统的 I/O 性能。它们利用内存,充当起慢速磁盘与快速 CPU 之间的桥梁,可以加速 I/O 的访问速度。 Buffer 和 Cache 分别缓存的是对磁盘和文件系统的读写数据。 从写的角度来说,不仅可以优化磁盘和文件的写入,对应用程序也有好处, 阅读全文
posted @ 2021-07-02 17:09 hochan_100 阅读(126) 评论(0) 推荐(0)
摘要: 回顾一下系统的内存使用情况,比如下面这个 free 输出界面: # 注意不同版本的free输出可能会有所不同 $ free total used free shared buff/cache available Mem: 8169348 263524 6875352 668 1030472 7611 阅读全文
posted @ 2021-07-02 16:29 hochan_100 阅读(130) 评论(0) 推荐(0)
摘要: 提问:物理的页面是如何管理的? 物理内存的组织方式 涉及物理内存的映射的时候,我们总是把内存想象成它是由连续的一页一页的块组成的。我们可以从 0 开始对物理页编号,这样每个物理页都会有个页号。 由于物理地址是连续的,页也是连续的,每个页大小也是一样的。因而对于任何一个地址,只要直接除一下每页的大小, 阅读全文
posted @ 2021-07-02 15:54 hochan_100 阅读(64) 评论(0) 推荐(0)
摘要: 32 位系统和 64 位系统的内存布局有的地方相似,有的地方差别比较大 用户态和内核态的划分 从 task_struct 出发来看。这里面有一个 struct mm_struct 结构来管理内存。 struct mm_struct *mm; 在 struct mm_struct 里面,有这样一个成员 阅读全文
posted @ 2021-07-02 12:37 hochan_100 阅读(48) 评论(0) 推荐(0)
摘要: 内存管理是操作系统最核心的功能之一。内存主要用来存储系统和应用程序的指令、数据、缓存等。 内存映射 我们平常所说的笔记本内存,指的是物理内存,也称主存。只有内核菜可以直接访问物理内存,那么,进程要访问内存时,该怎么操作? Linux 内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连 阅读全文
posted @ 2021-07-01 16:24 hochan_100 阅读(223) 评论(0) 推荐(0)
摘要: 一)全局-局部变量 全局变量是指:这个变量在没有被同名局部变量覆盖的时候,所有代码块都是可见的。 局部变量是指:该变量只在被申明的代码块中可见,并且可以覆盖同名全局变量或者外层局部变量。 Lua 中的局部变量要用 local 关键字来显式定义,不使用 local 显式定义的变量就是全局变量: g_v 阅读全文
posted @ 2021-06-26 20:37 hochan_100 阅读(220) 评论(0) 推荐(0)
摘要: Lua中table内部实际采用哈希表和数组分别保存键值对、普通值;下标从1开始 不推荐混合使用这两种赋值方式。 local color={first="red", "blue", third="green", "yellow"} print(color["first"]) --> output: r 阅读全文
posted @ 2021-06-26 14:34 hochan_100 阅读(6684) 评论(0) 推荐(0)
摘要: string的相关操作 1)string.upper(s) 接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串。 print(string.upper("Hello Lua")) -->output HELLO LUA 2)string.lower(s) 接收一个字符串 s,返回一个把所 阅读全文
posted @ 2021-06-26 14:13 hochan_100 阅读(758) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页