自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

OSSRS

https://github.com/ossrs

  • 博客(11)
  • 资源 (30)
  • 收藏
  • 关注

原创 epoll_wait的timeout的误差

epoll_wait(timeout)会有一定的误差,一般是1/1000。CentOS release 5.5 (Final)Linux CCN-YZ-1-3n1 2.6.37-1 #2 SMP Fri Feb 25 14:50:02 CST 2011 x86_64 x86_64 x86_64 GNU/Linux/**build:g++ epoll-wait-devia

2012-08-23 11:41:22 4663

原创 强大的grep

从海量日志找到自己要的数据,grep工作得很好。1. 假设只关注warn和fatal日志,实际上程序还会打印出trace日志,可以用grep过滤:server 1990 false 21010 | egrep "(\[warn\])|(\[fatal\])" > error.log 2>&1 &2. 假设现在有3000个client连接,需要找出delay比较严重的client

2012-08-22 16:25:08 1041

原创 一个refine/refactor的例子

我觉得refine比refactor的幅度大,refactor主要是等价替换,而refine有时候直接寻找更好的方案。Server在管理Client的BufferTime,即决定什么时候应该发包的这部分逻辑,最初是这么写的:u_int32_t Connection::PerformIO(){ u_int32_t ret = PErrorCode::Success;

2012-08-21 13:05:07 1741

原创 关于软件测试的看法

我是少数自发去做过一段时间测试的研发,所以经常有朋友问我一些问题:如何做自动化测试?如何提高测试的精准度?如何提高测试的速度?告诉我如何测试?某某公司是如何做测试的?而且很神奇的是,这些问题往往不会在最初的产品研发阶段提出来,而是当产品发布,客户反馈出bug时,才会问这些”重要“的问题。为什么在后期才会关注这些问题?因为测试喜欢被当作替罪羊:如果研发尽力了,产品设计尽力了,

2012-08-13 18:25:28 1218 1

原创 使用原型——不要做躺在炸弹上的勇士

我们只能对我们熟知的东西编程,熟知必须要知道和了解。而知识是无限扩展的未知体,了解更多也意味着更多的未知。所以需要软件工程,需要design和arch,需要高级程序员和架构师,需要项目经理,需要软件团队,需要软件方法。当然,最需要的其实是限定问题的范围。譬如需求分析和产品计划,就是将问题简化,不必要的功能千万不要做,不做超前的计划,因为那是未知的知识的边缘。简单,一定要简单,只有简单的东西

2012-08-10 14:05:53 2492

原创 总结c++内存错误的典型情况

最近遇到了c++几张内存错误的几种典型情况:1. 拷贝构造函数导致重复释放:http://blog.csdn.net/winlinvip/article/details/76638622. 内存越界导致错误:这个在http://blog.csdn.net/winlinvip/article/details/7822762 提到过。3. 非虚析构函数导致内存泄漏:http://blog.

2012-08-09 10:48:27 1385

原创 任何时候都应初始化变量

指针不初始化,直接释放会导致内存错误,这个都很明白,变量的初始化,就没有那么的挑剔了,有时候初始化,有时候不。原因是指针若不初始化,基本上就玩完,变量很大程度上不会出问题。不过它隐藏的危险比指针更可怕:会导致程序莫名其妙的怪异行为。考虑如下代码:bool all_sent_out;if(!mfarm->SendMessage(&all_sent_out)){ exit(-

2012-08-08 14:40:24 1257

原创 异步Socket(非阻塞模式)的应用

异步Socket(非阻塞模式)的应用若Socket是同步模式(即阻塞模式):1. send(1024)需要等1024个字节发完了才会返回(或者socket被关闭了)。这使得server在和低速的client通信时被阻塞,所以高性能server要使用非阻塞方式。2. recv(1024)不会等1024个字节,但必须要有数据才行,否则会被阻塞。所以阻塞的recv通常需要判断是否有数

2012-08-08 13:05:41 2870

原创 socket效率到底如何

两台服务器用千兆交换机连接,带宽为1000Mbps,socket的效率到底如何?若server尽量快向client写数据,client收到数据后就丢弃,是否能占满千兆带宽?测试发现和每次发送的包大小有关系,TCP包为1000bits(125字节)以上就能占满带宽:因此,若client足够多而且都在请求数据,但是带宽上不去,就是服务器程序的问题了。协议本身会降低带宽,使用rtmp

2012-08-07 18:21:38 6682

原创 多线程还是那么猛

多线程需要线程同步,因此增加了系统复杂性,若能使用系统的异步机制(异步socket,异步io等),就应避免使用多线程。学生时代,典型的socket server是:1. 创建,绑定,侦听socket:socket(), bind(), listen()2. 创建线程,接受连接:pthread_create(), accept()3. 线程2接受客户端后,启动线程服务client:rec

2012-08-06 14:54:22 1555

原创 各种奇特的事情:内存错误,无常的段错误,堆栈消失

1. 在修改较多文件,make和执行,发现总是提示SegmentFault,调试也找不到原因(gdb调试时,往往进入某个普通的函数就SegmentFault)解决方法:全部重新编译可能会解决问题,原因不明。make clean; make。环境:g++/gcc (GCC) 4.4.4 20100726 (Red Hat 4.4.4-13) centos62. 程序突然就退出了,

2012-08-02 14:21:12 7843 1

Effective Go (中文版).pdf

Effective Go (中文版) .

2015-11-11

nginx-rtmp

nginx-rtmp

2014-01-01

LDD 英文版

LDD 英文版

2013-12-05

H.264-AVC-ISO_IEC_14496-15.pdf

H.264-AVC-ISO_IEC_14496-15.pdf

2013-11-24

nginx-rtmp build script

build nginx rtmp base one nginx1.5

2013-11-14

OOAD booch 3rd edition

OOAD booch 3rd edition

2013-10-14

新一代视频压缩编码标准H.264

新一代视频压缩编码标准H.264

2013-04-08

Effective.STL

Effective.STL Effective.STL

2013-03-22

effective stl 中文版

effective stl 中文版

2013-03-22

android桌面小组件最简实例

android桌面小组件最简实例,最少代码。

2013-01-06

android桌面小组件

android桌面小组件官网实例 android桌面小组件

2013-01-06

zeromq guide

zeromq guide zeromq指南

2012-12-23

Pattern.Oriented.Software.Architecture.Volume.2

Pattern.Oriented.Software.Architecture.Volume.2

2012-11-29

ISO_IEC_14496-1

ISO_IEC_14496-1

2012-11-18

ISO_IEC_14496-3

ISO_IEC_14496-3

2012-11-18

ISO_IEC_14496-10

ISO_IEC_14496-10

2012-11-17

f4v-moov

f4v-moov

2012-11-16

ISO_IEC_14496-15

ISO_IEC_14496-15

2012-11-16

学习Go语言

学习Go语言,中文版

2012-11-12

Node.js开发指南

Node.js开发指南, about the node.js

2012-11-05

mp4 file format引用文档

mp4 file format引用文档 mp4 file format是 ISO_IEC_14496-14,引用了“ ISO_IEC_14496-12”文档。

2012-11-04

原版 mp4 file format

mp4-file-format ISO/IEC 14496-14

2012-11-04

ISO_IEC_14496-14_mp4-file-format

ISO_IEC_14496-14_mp4-file-format

2012-11-04

mp4 file format

mp4 file format, ISO_IEC_14496-14

2012-11-04

amf3_spec_121207

adobe amf3_spec_121207 format.

2012-10-29

amf0_spec_121207

adobe amf0_spec_121207 for amf0 format.

2012-10-29

video_file_format_spec_v10_1

video_file_format_spec_v10_1

2012-10-29

rtmp_specification_1.0

rtmp_specification_1.0

2012-10-29

The.Cpp.Programming.Language.Special.Edition

The.Cpp.Programming.Language.Special.Edition

2012-10-29

gperftools-2.0.tar.gz

gperftools-2.0.tar.gz

2012-08-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除