- 博客(10)
- 资源 (30)
- 收藏
- 关注
原创 不要再开始时优化程序,不要想象某个地方应该优化
开始时没有必要优化程序,因为先实现后才知道哪些地方需要变动,变动过大会影响之前的优化。不要想象某个地方应该优化,因为想象那个地方,有可能计算机觉得“恩,没关系,你多余执行了几百万次而已,对于我来讲无所谓”。time ./cc_rtmpdump rtmp://192.168.8.126:1935/vod/mp4:test_1.4g.half.mp4 /home/winlin/cc_rtmpd
2012-06-28 20:27:09 379
原创 使用C++(OO)编写高性能程序的可能
最近在使用C++编写真正的OO,解析RTMP协议,并将RTMP流保存为flv文件。所谓真正的OO,是用标准OO的思维和编程方式写代码,用类和对象解决问题;而不是将函数组织成类的本质上还是c的思维方式。sample1_1500kbps.f4v和sample1_1000kbps.f4v都是fms自带的测试文件。rtmpdump-2.2e是c写的,和rtmpdump做了比较,性能和内存占用都比r
2012-06-27 19:32:36 2513 5
原创 linux下检测和定位内存泄漏位置的方法
gtest:http://code.google.com/p/googletest/,可以下载最新的代码。下载后,可以参考gtest-1.6.0\make\Makefile写自己的Makefile。程序内存的信息(/proc/self/smaps):VMSIZE: 15316 KBRSS: 2560 KB total 1152
2012-06-21 19:26:53 6585
原创 析构函数,必须是virtual的,否则会内存泄漏
AMF0String => AMF0Base假设析构函数不是virtual:AMF0String* s = new AMF0String("abc"); delete s; //没有问题,可以调用AMF0String的析构函数释放heap内存。AMF0String* s = new AMF0String("abc"); delete (AMF0Base*)s; // 内存泄漏,调用
2012-06-15 19:18:48 2148
原创 拷贝构造函数--内存被重复释放的隐形人
c++中拷贝构造函数的概念一直没有仔细看,原因是没有在这个上面栽过跟头,最近终于有幸花了一个下午找一个内存重复释放的错误,发现是拷贝构造函数。看一下可以运行的没有问题的例子,是如何变成内存杀手的:#include #include using namespace std;class MyString{private: int length; char* va
2012-06-14 17:27:38 3166 2
原创 纪录片《Home》字幕,及VLC2支持中文字幕
听了一个TED演讲,说用了5年时间拍了纪录片《Home》(家园),就去网上找,土豆优酷上的的很模糊,就从国外网站找到了20Mbps12G种子,下了一天下下来,然后在网上找字幕——没有,但是有中英文翻译,就把翻译做成了字幕,发现vlc播不了找了找终于能播了。第一部分:TED演讲不堪重负的地球http://v.163.com/movie/2009/9/G/P/M7CGUA4AL_M
2012-06-13 14:56:56 6003
原创 代码一定要写给人看,人只能看懂强类型的东西
uppernode_map[itr_tmp->second.strIP] = itr_tmp->second;uppernode_map[itr_tmp->second.strIP].strPort = itr_src->second.strSrcPort;uppernode_map[itr_tmp->second.strIP].strFixIpOfOrg = itr_src->second.
2012-06-11 20:20:53 1738
原创 flash actionscript 3.0 publish h264 stream
NetStream.publish捕捉摄像头的图像,并编码后发送到FMS服务器。flash 11终于支持发布h264的流。因为推送h264的流,需要flash player能编码h264格式视频,在flash player 11加入了h264编码器。官方参考:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3
2012-06-07 19:04:39 6547
原创 Makefile基本写法
Makefile的语法是:target: [target| prebuild-condition]command就是说,若target右边的条件为真,就执行command。例如:app: app.og++ app.o -o app若app.o比app新,则执行g++ app.o -o app。复杂的项目,hpp会互相包含,cpp会包含多个hpp,以下是一个将依赖关系
2012-06-06 20:15:23 1552
原创 reap linux zombie process 僵尸进程
很多次碰到,或者听说过zombie/defunct process,都只是翻了一下资料,没有仔细看看这个东西。主要是涉及到了fork,signal,而这个一直没有用到,所以就懒得看。http://en.wikipedia.org/wiki/Zombie_process,wikipedia上已经说得很明白,还有例子。对比起百度百科的说明http://baike.baidu.com/view/75
2012-06-05 12:49:36 2140
Pattern.Oriented.Software.Architecture.Volume.2
2012-11-29
mp4 file format引用文档
2012-11-04
The.Cpp.Programming.Language.Special.Edition
2012-10-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人