杂记

Technorati 标签: , , ,

  write by huhaoyuan -- blog.csdn.net/a7758526

  1. const和常量实际上没有什么关系,叫做"read only"其实合适。
  2. 新的风格无需在结尾加上"/"以表示换行。
  3. static对于变量而言指的是在各个调用间保持一致性,对于函数而言指的是仅对本文本可见。为什么差距这么多,我也不知道。
  4. sizeof不是函数,所以可以这么写sizeof *p。
  5. p->f就是(*p).f,这样子写法更直观,而相应的如果你写了*p.f,那其实等于*(p.f)。
  6. "只要知道乘法,除法的优先级大于加法和减法就够了,在其他的地方加上括号。"我深表赞同。
  7. &,|是左结合的,赋值是右结合的。
  8. 如果有哪本书声称调用函数的时候参数是按从右到左的次序压入堆栈,撕下那一页烧掉;如果你有那样的一个编译器,把编译器的那几行源代码删掉。参数在传递过程中首先尽可能的存放到寄存器中。
  9. 堆栈几乎是为递归调用而生的,而线程就是堆栈保存了自身的位置。
  10. 利用setjmp和longjmp已经足以构造强大的异常机制。setjmp保存了一份程序的计数器和当前的栈顶指针,longjmp过程需要保持局部变量不变(用volatile)。
  11. c的回溯过程通过过程活动记录完成,一份规范的过程活动记录至少包括局部变量,参数,前一个活动记录和返回地址。
  12. 如上所述,过程活动记录不一定位于堆栈中,很可能在寄存器内。
  13. 试图访问系统分配的堆栈之外的空间会导致一个硬件中断,称为page fault。这也是segment error的重要来源。
  14. 磁盘制造商总是用一个诡异的方式标示磁盘的容量,大部分情况下他们用十进制。2GB=2,000,000,000个字节的数据而不是2147483648。
  15. 虚拟内存通过页的形式组织。页就是操作系统在磁盘和内存之间移来移去或进行保存的单位。在/usr/ucb/pagesize保存了页的大小。page in:移入内存;page out:移入硬盘。磁盘上的交换区(/swap)就用于保存这部分资源,当然,仅限于用户进程。
  16. 如果进程引用一个不在物理内存中的页面时,MMU会产生一个page fault,内核对此事件作出响应,判断引用的有效性。如果有效则从磁盘取回该页。这也是为数不多的page fault不会引发segment violation的例子之一。
  17. Cache有两种类型:
    1. write-through——每次写入时总是同时写入内存,使内存和cache保持一致。
    2. write-back——当第一次写入时,只对Cache写入。如果已经写入过的line需要再次写入,将前一次的内容保存到内存。e.x:内核切换进程。
    3. 两种情况下Cache访问结束,指令流将继续执行,无视内存操作。
  18. 填充cache行的主存地址恰好是cache行大小的整数倍。
  19.   memcpy经过cache的优化,所以它速度远快于普通按元素拷贝。普通拷贝中source和destination大小都是cache行的整数倍,因此总是只有其中之一能使用cache。
  20. brk和sbrk——调整数据段大小到一个绝对值。
  21. 内存泄漏:
    1. 释放,改写仍在使用的内存(内存损坏)。
    2. 未释放不再使用的内存(内存泄露)。
    3. 可以考虑使用alloca来分配动态内存。
  22. 检测内存泄漏:
    1. swap查看交换空间:/usr/sbin/swap –s,连续键入,查看交换区是否一直减少。
    2. 查看进程:ps –lu username,数次重复,如果有一个进程总是增长而不是缩小,那就可能是他了。

 

  write by huhaoyuan -- blog.csdn.net/a7758526

Technorati 标签: ,
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值