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)
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)
在C++中,每个变量在内存中的布局都是固定的,而且,每个变量都有它的生命周期,只有在这段时间内,变量所占用的内存中的值才是有意义的,为变量分配内存的开销取决于存储期
heap在STL中并不属于容器组建,而且作为priority queue的助手,你可以在<algorithms>
中找到关于heap的算法,如
C++的std::string是C++标准库中使用最广泛的特性之一,例如google的chromium,std::string对内存管理器的调用次数占到了内存管理器被调用的总次数的一半
前面也提到过,只要涉及内存被频繁分配/复制的地方,就有优化的可用武之地
Unix设计风格都秉承着“做单件事并做好”的方法,因此,提供了众多的IPC方法,并用其来连接小型进程,Unix操作系统提倡把程序分解成更简单的子进程,并专注考虑这些子进程间的接口
这得益于Unix上平价的进程生成和简单的进程控制,Unix家族操作系统倾向于减轻fork的开销,特别是Linux,使得进程的生成比其他操作系统的线程生成还要快
实际上,在shell编程中,就无时无刻都在鼓励Unix程序员从多个协作进程的角度思考问题,最为简单的例子就是
cat file | less
尽管将程序划分为协作进程可以降低全局的复杂度,但是随之而来的,是我们必须更多地关注在进程间传递消息和命令的协议设计,但这都是后话,首先,先看看Unix下的IPC工具