Linux后台C++开发知识点
2013-07-10 12:34
369 查看
作者:yurunsun@gmail.com
新浪微博@孙雨润 新浪博客
CSDN博客日期:2013年7月9日
linux后台开发需要熟练掌握哪些技能呢?
top: swap memory ↑
kswap进程
valgrid中malloc/free值
调用
strace -p
进程太多: vmstat 1
io阻塞:vmstat 1
pthread_join或boost::thread::join等于waitpid, 调用者会阻塞
socketfd等资源无法共享
使用gcc -pthread 或者 -D_REENTERANT来解决全局变量重入问题
使用_r版本的库函数解决库函数重入问题
查看所有_r版本函数
互斥逻辑rcntl, flock, semaphere, mutex, rwlock
内存原子操作
为什么要三步握手
为什么要有TIME_WAIT
gdb
如果这篇文章对您有帮助,请到CSDN博客留言;
转载请注明:来自雨润的技术博客 http://blog.csdn.net/sunyurun
新浪微博@孙雨润 新浪博客
CSDN博客日期:2013年7月9日
linux后台开发需要熟练掌握哪些技能呢?
1. 内存泄漏
cpu wait% ↑top: swap memory ↑
kswap进程
valgrid中malloc/free值
调用
mallinfo输出当前所占内存
strace -p
2. 野指针
valgrid中access invalid address3. 机器负载较高
内存泄漏:top进程太多: vmstat 1
io阻塞:vmstat 1
4. 多线程
线程参数不能是局部变量pthread_join或boost::thread::join等于waitpid, 调用者会阻塞
socketfd等资源无法共享
使用gcc -pthread 或者 -D_REENTERANT来解决全局变量重入问题
使用_r版本的库函数解决库函数重入问题
readelf -s /lib/libc-2.17.so | grep _r@
查看所有_r版本函数
互斥逻辑rcntl, flock, semaphere, mutex, rwlock
内存原子操作
5. TCP
状态转移图CLOSED, LISTEN, SYN_RCVD, SYN_SENT, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, TIME_WAIT
为什么要三步握手
为什么要有TIME_WAIT
6. coredump
ulimit -c unlimited
gcc -g
gdb
gdb -c core bin (gdb) bt (gdb) l (gdb) frame 0 (gdb) p this->m_value
7. 智能指针
scoped_ptr
shared_ptr
weak_ptr
enable_shared_from_this
noncopable
如果这篇文章对您有帮助,请到CSDN博客留言;
转载请注明:来自雨润的技术博客 http://blog.csdn.net/sunyurun
相关文章推荐
- linux后台开发知识点
- linux C/C++服务器后台开发面试题总结
- linux c/c++ 后台开发基础之:c++日志模块
- linux c/c++ 后台开发常用组件之:高级字符串处理库
- linux 后台开发类常见问题及知识点
- linux c/c++ 后台开发之—连接池
- linux C/C++服务器后台开发面试题总结
- linux c/c++ 后台开发之—连接池
- linux c/c++ 后台开发常用算法之:md5算法c++版实现
- linux C/C++服务器后台开发面试题总结
- linux c/c++ 后台开发常用组件之:c++日志模块
- 后台开发知识点总结(一、Linux和OS)
- C++ 的linux后台开发要学什么?
- linux c/c++ 后台开发常用组件之: 高性能LRU本地缓存
- linux C/C++服务器后台开发面试题总结
- linux c/c++后台开发组件之:memcached 单机和分布式集群c++客户端
- linux C/C++服务器后台开发面试题总结
- linux c/c++ 后台开发常用组件之:高性能阻塞队列
- linux c/c++ 后台开发常用组件之:c++日志模块
- 后台开发知识点总结(一、Linux和OS)