多线程的优缺点 多线程的优点能适当提高程序的执行效率能适当提高资源利用率(CPU、内存利用率)多线程的缺点创建线程是有开销的,iOS下主要成本包括:内核数据结构(大约1KB)、栈空间(子线程512KB、主线程1MB,也可以使用-setStackSize:设置,但必须是4K的倍数,而且最小是16K), ...
分类:
编程语言 时间:
2017-03-14 11:00:32
阅读次数:
153
STM8S103只有8KRom,很容易造成空间不足。对于空间不足,我们就要从map文件着手分析,究竟哪些函数占了多少空间,map文件分为几部分:Segments(总括了各个段所占的空间), Modules(各个源文件为单位,进行划分), Stack usage(堆栈使用,列出堆栈空间和堆栈深度), ...
分类:
其他好文 时间:
2017-03-09 21:45:21
阅读次数:
189
概述 之所以想写这篇文章,其实是因为最近有不少系统出现了栈溢出导致进程crash的问题,并且很隐蔽,根本原因还得借助coredump才能分析出来,于是想从JVM实现的角度来全面分析下栈溢出的这类问题,或许你碰到过如下的场景: 日志里出现了StackOverflowError的异常 进程突然消失了,但 ...
分类:
其他好文 时间:
2017-02-25 13:30:15
阅读次数:
160
出现异常主要表现 导致异常的关键代码不是因为printf 或cout,而是因为使用栈空间超出的原因 下图试图在栈上分配1024000个char的空间,确发现崩溃 的位置是printf,这就是这个问题难找的原因。 ...
分类:
其他好文 时间:
2017-02-24 12:16:05
阅读次数:
125
前面介绍了块设备的相关概念、 buffer_head和bio结构体。接下来主要分析如何向通用块层提交IO。
分类:
其他好文 时间:
2017-02-23 12:24:03
阅读次数:
211
1. 引入inline关键字的原因 在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。 栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。 在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序 ...
分类:
编程语言 时间:
2017-02-21 14:33:38
阅读次数:
164
一、简介 SystemTap是一个诊断Linux系统性能或功能问题的开源软件。它使得对运行时的Linux系统进行诊断调式变得更容易、更简单。有了它,开发者或调试人员不再需要重编译、安装新内核、重启动等烦人的步骤。 为了诊断系统问题或性能,开发者或调试人员只需要写一些脚本,然后通过SystemTap提 ...
分类:
系统相关 时间:
2017-02-20 00:55:50
阅读次数:
351
在计算机系统中,运行的应用程序的数据都是保存在内存中的,不同类型的数据,保存的内存区域不同。一、内存分区 栈区(stack) 由编译器自动分配并释放,存放函数的参数值,局部变量等。栈是系统数据结构,对应线程/进程是唯一的。优点是快速高效,缺点时有限制,数据不灵活。[先进后出] 栈空间分静态分配 和动 ...
分类:
移动开发 时间:
2017-02-15 12:02:38
阅读次数:
210
引言 本文之初的目的是讲述设计模式中的 Prototype(原型)模式,但是如果想较清楚地弄明白这个模式,需要了解对象克隆(Object Clone),Clone其实也就是对象复制。复制又分为了浅度复制(Shallow Copy)和深度复制(Deep Copy),浅度复制 和 深度复制又是以 如何复... ...
JVM中的异常发生 Java虚拟机规范中除了程序计数器外,其他几个运行时区域都有发生OutOfMemoryError异常的可能。 本章笔记通过代码来验证Java虚拟机规范中描述的各个运行时区域存储的内容、以及在以后遇到实际的内存溢出异常时,能根据异常的信息快速判断是哪个区域出现的内存溢出、怎样的代码 ...
分类:
编程语言 时间:
2017-01-14 21:00:28
阅读次数:
263