RACx0

  • Home

  • Tags

  • Archives

How to use LLDB to debug the multi-thread progarm

Posted on 2019-06-05

Debug is very difficult when you develop a multi-thread program.

This article will show you how to use LLDB to do it.(the example is TinyWebServer)

Read more »

Nginx 内存池

Posted on 2018-12-20 | Edited on 2019-06-05

源码在此

初窥Nginx内存池

Nginx的内存池采用链表结构,每个内存池存在三个链表,每个链表以及所对应的node结构体如下所示

  • 内存池链表 : ngx_pool_t
  • 大块内存链表 : ngx_pool_large_t
  • 需特殊回收的已分配内存链表 : ngx_pool_large_t
Read more »

优化动态分配内存的变量

Posted on 2018-12-02 | Edited on 2019-06-05

在C++中,每个变量在内存中的布局都是固定的,而且,每个变量都有它的生命周期,只有在这段时间内,变量所占用的内存中的值才是有意义的,为变量分配内存的开销取决于存储期

Read more »

STL之Heap

Posted on 2018-12-02

heap在STL中并不属于容器组建,而且作为priority queue的助手,你可以在<algorithms>中找到关于heap的算法,如

  • make_heap
  • is_heap
  • pop_heap
  • push_heap
  • sort_heap
Read more »

优化字符串

Posted on 2018-11-01 | Edited on 2018-11-03

C++的std::string是C++标准库中使用最广泛的特性之一,例如google的chromium,std::string对内存管理器的调用次数占到了内存管理器被调用的总次数的一半

前面也提到过,只要涉及内存被频繁分配/复制的地方,就有优化的可用武之地

Read more »

优化入门

Posted on 2018-11-01 | Edited on 2018-12-05

关于优化

我们应当忘记小的性能优化,百分之九十七的情况下,过早的优化都是万恶之源

这句话在很多时候都被引用到,以至于”不要优化”(注意,是”不要优化”而不是“不要过早优化”)已经深入人心,过度地推崇这条建议经常会成为如下行为的借口

  • 编程恶习
  • 逃避性能分析
Read more »

Function Semantics

Posted on 2018-10-24 | Edited on 2018-11-29

Function 语意学

Member Function的各种调用方式

Nonstatic Member Functions

C++的设计准则之一就是:成员函数要和一般函数拥有同样的效率,成员函数不应该带来额外的负担,这也就是为什么每一个成员函数的参数列表都隐含一个this指针的原因

那么member function是如何转化为nonmember function的呢?具体如下

Read more »

Search & Copy Algorithms

Posted on 2018-10-22 | Edited on 2019-10-16

查找算法

基本概念

  • 查找表(数据结构),分为静态查找表和动态查找表

  • 关键字:唯一标示某个记录的一个key,如数组的下标

  • ASL : $ASL=\sum_{i=1}^{n}P_iC_i$ ,其中Pi是概率,Ci是找到第i个数据元素需要比较的次数

    Read more »

UNIX IPC

Posted on 2018-10-10 | Edited on 2018-10-22

UNIX IPC概览

Unix设计风格都秉承着“做单件事并做好”的方法,因此,提供了众多的IPC方法,并用其来连接小型进程,Unix操作系统提倡把程序分解成更简单的子进程,并专注考虑这些子进程间的接口

这得益于Unix上平价的进程生成和简单的进程控制,Unix家族操作系统倾向于减轻fork的开销,特别是Linux,使得进程的生成比其他操作系统的线程生成还要快

实际上,在shell编程中,就无时无刻都在鼓励Unix程序员从多个协作进程的角度思考问题,最为简单的例子就是

cat file | less

尽管将程序划分为协作进程可以降低全局的复杂度,但是随之而来的,是我们必须更多地关注在进程间传递消息和命令的协议设计,但这都是后话,首先,先看看Unix下的IPC工具

Read more »

结构型模式

Posted on 2018-10-05 | Edited on 2018-10-22

结构型设计模式

在做了一些小项目之后,对设计模式的理解更加深刻,现在在此再次概述之前学习一些模式

Read more »
123…5

OriginalS

45 posts
17 tags
GitHub
© 2020 OriginalS
Powered by Hexo v3.8.0
|
Theme – NexT.Muse v6.4.2