程序的虚拟地址空间分为多个区域,栈是其中地址较高的一个区域。 栈可以存放函数参数、局部变量、局部数组等作用范围在函数内部的数据,它的作用就是完成函数的调用。 栈的概念 栈溢出(Stack Overflow) 对于每个程序来说,栈能使用的内存是有限的,一般是1M 8M,这在编译时就已经决定了,程序运行 ...
分类:
其他好文 时间:
2020-02-21 22:39:57
阅读次数:
76
js中垃圾收集机制原理:垃圾收集器会按照固定的时间间隔(或代码执行中预定的收集时间), 周期性地执行这一操作:找出那些不再继续使用的变量,然后释放其占用的内存。 1.引用计数法 原理:当JavaScript代码生成一个新的内存驻留项时(比如一个对象或函数),系统就会为这个项留出一块内存空间。因为这个 ...
分类:
编程语言 时间:
2020-02-21 22:38:56
阅读次数:
73
进程 一个具有一定独立功能的程序在一组数据集合上的一次动态执行过程。 进程最显著的特点是拥有独立的地址空间。 内核模式 内核空间存放的是操作系统内核代码和数据,是被所以程序共享的。 操作系统禁止用户进程直接访问内核空间。 用户进程调用系统调用(System Call)来访问内核空间。 用户模式 用户 ...
分类:
其他好文 时间:
2020-02-21 22:28:32
阅读次数:
92
其它语言(如C语言)要求程序员显式地分配内存、释放内存。 程序需要内存时分配内存,不需要时释放内存。 但是这种做法常常引起内存泄漏。所谓内存泄漏,就是由于某种原因使分配的内存始终没有得到释放。如果该任务不断地重复,程序最终会耗尽内存并异常终止,至少无法继续运行。 Java在创建对象时会自动分配内存, ...
分类:
编程语言 时间:
2020-02-21 20:03:59
阅读次数:
56
虚拟地址空间:就是程序可以使用的虚拟地址的有效范围。虚拟地址空间的大小由操作系统决定,但还会受到编译模式的影响。 CPU的数据处理能力 地址总线:用于在内存上定位数据,例如:地址总线有20根,寻址能力为2^20 = 1MB 数据总线:位于主板之上,不在CPU中,用于在CPU和内存之间传输数据。决定了 ...
分类:
其他好文 时间:
2020-02-21 18:05:13
阅读次数:
74
1、spark的一大特性就是基于内存计算,Driver只保存任务的宏观性的元数据,数据量较小,且在执行过程中基本不变,不做重点分析,而真正的计算任务Task分布在各个Executor中,其中的内存数据量大,且会随着计算的进行会发生实时变化,所以Executor的内存管理才分析的重点。 2、在执行Sp ...
分类:
其他好文 时间:
2020-02-20 19:53:27
阅读次数:
56
Perf 简介 Perf 是用来进行软件性能分析的工具。 通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题 (per thread),也可以用来分析内核的性能问题,当然也可以同时分析应用代码和内核,从而全面理解应用程序中 ...
分类:
系统相关 时间:
2020-02-18 12:47:49
阅读次数:
101
JVM可以说是为了Java开发人员屏蔽了很多复杂性,让Java开发的变的更加简单,让开发人员更加关注业务而不必关心底层技术细节,这些复杂性包括内存管理,垃圾回收,跨平台等,今天我们主要看看JVM的垃圾回收机制是怎么运行的,希望能够帮到大家, 哪些对象是垃圾呢? Java程序运行过程中时刻都在产生很多 ...
分类:
其他好文 时间:
2020-02-17 11:55:23
阅读次数:
55
Hadoop生态架构技术 1、语言基础 Java:掌握javase知识,多理解和实践在Java虚拟机的内存管理、以及多线程、线程池、设计模式、并行化就可以,不需要深入掌握。 Linux:系统安装(命令行界面和图形界面)、基本命令、网络配置、Vim编辑器、进程管理、Shell脚本、虚拟机的菜单熟悉等等 ...
分类:
其他好文 时间:
2020-02-15 00:16:06
阅读次数:
86
1、为何高并发下容易oom 1)首先我们了解当执行垃圾回收的时候,会导致进程暂停,从而使我们的程序卡死;进程长时间暂停,又会导致大量的请求积压等待处理,垃圾回收刚刚结束,更多的请求立刻涌进来,迅速占满内存,再次被迫执行垃圾回收,进入了一个恶性循环。如果垃圾回收的速度跟不上创建对象的速度,还可能会产生 ...
分类:
其他好文 时间:
2020-02-13 23:04:29
阅读次数:
99