自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 资源 (9)
  • 收藏
  • 关注

原创 关于erlang中的timer:send_after

erlang中有两个延时发送消息的函数erlang:send_after/3, timer:send_after/3,有什么区别呢?看下timer:send_after/3的源码send_after(Time, Pid, Message) -> req(apply_after, {Time, {?MODULE, send, [Pid, Message]}})req(R

2015-06-02 15:19:48 5050

原创 erlang 进程消息及ets性能测试

进程消息发送与接收1> test:test_proc_msg(10000000, {"test"}).{3145000,ok}2> test:test_proc_msg(10000000, {"test","test"}).{3731000,ok}3> test:test_proc_msg(10000000, {"testtesttesttest"}).{4428000

2015-05-16 17:41:40 2864

原创 erlang中dict的实现

首先来看dict定义:-define(seg_size, 16).-define(max_seg, 32).-define(expand_load, 5).-define(contract_load, 3).-define(exp_size, (?seg_size * ?expand_load)).-define(con_size, (?seg_size * ?contract_lo

2015-04-27 19:35:33 2819

转载 erlang进程性能分析方法

转自:http://yigechengxuyuan201307073459.iteye.com/blog/1901496Erlang tools lib中包含三个用于性能分析的工具:cprof,eporf和fprof。 cprof 提供函数调用计数,其对系统的性能影响最小 eprof 提供函数运行时间的百分比 fprof 通过将trace存储到文件,提供函数调用计数及运行时间统计信

2013-08-22 23:26:29 2325

原创 Erlang类型及函数声明规格

Erlang为动态语言,变量在运行时动态绑定,这对于我们获取函数的参数及返回值的类型信息具有一定的难度。 为了弥补这个不足,在Erlang中我们可以通过type及spec定义数据类型及函数原型。通过这些信息,我们对函数及调用进行静态检测, 从而发现一些代码中问题。同时,这些信息也便于他人了解函数接口,也可以用来生成文档。    意义:    定义各种自定义数据类型    定义函数的

2013-08-20 22:59:08 1991

原创 mysql删除重复数据

今天写了一个sql语句,功能是删除一个表中指定字段有重复的数据:DELETE FROM test WHERE id IN (SELECT id FROM test  GROUP BY id HAVING COUNT(id) > 1)提示错误:You can't specify target table 'test' for update in FROM clause

2013-08-19 23:01:45 1100

原创 sasl日志配置与读取

1.sasl日志配置解析 [{sasl, [          %% minimise shell error logging          {sasl_error_logger, false},          %% only report errors          {errlog_type, error},          %% define the pa

2013-08-17 23:07:51 3333 2

原创 erlang中sasl与错误日志

erlang应用都会启动一个sasl应用,sasl的一个重要功能便是可以记录系统进程相关日志,如进程启动、结束、崩溃错误等信息。sasl的日志功能是基于erlang自带的日志模块error_logger来实现的sasl中定义了下面3个错误处理      sasl_report_tty_h :主管报告、崩溃报告和进度报告格式和将 stdio .sasl_report_fi

2013-08-15 23:33:05 6641

转载 erlang的错误日志

错误日志OTP系统已经内置了一个可定制的错误日志模块。我们可以从三种不同的视角来看错误日志。程序员的视角关注代码中要记录一个错误日志的函数调用?配置的视角关注错误日志如何存储以及保存在哪里?报告的视角则关心错误发生之后,如何进行分析。我们将逐条讲述这些内容。记录一个错误日志在程序员的视角,错误日志的API很简单,下面是这些API的一部分:@spec error_logg

2013-08-13 23:03:04 7634

原创 关于erlang热更新

热更原理        内存中可以保留两个版本的代码,当前版本代码'current'和老版本代码'old',一旦模块被加载就变成'current',再有一个版本过来被加载,之前的版本就变成'old',新加载的变成'current'.这时候,两个版本还是同时存在,新的请求执行的时候会使用新的版本,而老版本的代码还会被使用因为还有其他模块的调用'old'版本中。如果再进行一次热更新,这时就有第三个

2013-08-13 00:06:49 3213

原创 erlang多节点name conflict

今天游戏更新出现了一个问题,环境是这样的:顺序启动S1、S2、S3三个游戏服务器节点,能够正常工作。接着启动一个中央后台节点A,S1、S2、S3每隔几十秒的时间就会与节点A通信一次(使用erlang的进程通信方式),结果很快S2、S3崩溃了,S1能够正常工作。查看到S2上的错误报如下:([email protected])1>=CRASH REPORT==== 18-Jul-20

2013-07-18 22:51:34 1869 1

原创 windowsk中一个erlc编译错误

windows下erlc编译错误:E:\my_server>erlc -o ebin src/*.erle:/my_server/src/*.erl:none: I/O errorerlc -o ebin src/*.erl命令在linux上是能够正常工作的,但在windows上却出现问题。原因是linux下的shell能够自动解释*.erl,windows shell却没

2013-05-14 16:16:39 2299

原创 vimerl自动编译

vimerl配置好后,在文件每次保存时会自动进行语法检查。但是我发现,修改一个文件后,使用rebar进行编译,花费的时间比较长,主要是项目文件较多,编译遍历整个项目花了大量时间。我们可以做一些小的修改就可以在文件保存时自动生成 *.beam,由于只编译一个文件,所以速度很快.      首先查看erlang_check.erl文件, 原有代码在不能生成*.beam文件的原因在于编译时使用了

2013-01-24 15:16:40 2065 1

原创 vim erlang环境搭建

1.需要安装vim插件列表: 插件管理插件pathgoen, http://www.vim.org/scripts/script.php?script_id=2332项目管理插件Project  http://www.vim.org/scripts/script.php?script_id=69taglist插件  http://www.vim.org/scripts/script.p

2013-01-22 00:06:37 5299 1

原创 erlang基础笔记

进程管理器可以使用pman:start()来启动进程管理器。类似于i()命令显示的。可以跟踪所有的发送和接收消息,以及内置函数和普通函数调用,以及并发相关的事件。进程管理器跟程序运行是很方便的。应用监控器通过appmon:start()调用启动应用监控器。调试器debugger:start(),启动图形化的调试器,可以进行断点跟踪。不过需要在编译模块时,加上调试标志

2012-08-08 14:36:26 1346

原创 快速排序

按照算法导论,写了一下快速排序void swap(int &a, int &b){ int temp = a; a = b; b = temp;}int partition(int array[], int low, int high){ int key = array[high];//选取参考点 int i = low -1; for(int j = low; j

2012-07-19 00:16:12 769

原创 关于mysql外键创建失败的问题

创建persons:CREATE TABLE `persons` (  `id_p` int(11) NOT NULL AUTO_INCREMENT,  `lastname` varchar(10) DEFAULT NULL,  `firstname` varchar(10) DEFAULT NULL,  `address` varchar(50) DEFAULT NULL,

2012-07-12 16:34:38 1186

原创 浏览器中几个最常用的快捷键

打开/关闭全屏模式  F11 切换到下一个标签 CTRL+TAB 切换到前一个标签 CTRL+SHIFT+TAB放大 CTRL + +缩小 CTRL + - 恢复原始大小 CTRL+0选择地址栏 ALT+D 打开一个新窗口 CTRL+N 打开一个新标签 CTRL+T 关闭一个标签 CTRL+W

2012-07-08 23:39:07 2814

原创 linux上mysql的简单入门

最近想转去做linux后台服务器方面的工作,首先要恶补的是数据库。做c++的,如果不做后台,基本是没怎么用数据库的。简单的记录一下ubuntu下的简单使用。首先安装,很简单 sudo apt-get install mysql-server安装完成后,回弹出设置root密码的框。如果后面想修改这个密码,可以使用下面的命令$mysqladmin -u root  -p pas

2012-07-08 17:57:29 2899

原创 趣味面试题集锦

1.16个硬币,A和B轮流拿走一些,每次拿走的个数只能是1,2,4中的一个数。谁最后拿硬币谁输。问:A或B有无策略保证自己赢?  很明显,当剩余个数为1时,下一个拿的必输,所以这是一步死棋,可以推测出对应用的三个杀棋2,3,5。如果对应的硬币数,取走1,2或者4后,剩下的硬币数均为杀棋,则这里的硬币数就是死棋。按这样的规则倒推。  集合状态:死棋(1),杀棋(2,3,5)。  当剩

2012-07-05 12:55:33 1545 1

转载 linux socket编程相关问题

1.connect函数响应中断返回后仍然回到函数的调用。实践证明,对于一个非阻塞的socket,如果在调用connect函数时,如果发生中断,这函数响应中断,但当中断返回时,继续connect函数的调用,直到connect超时失败或接收到错误ICMP包或连接成功2.accept()如果侦听进程是非阻塞模式工作,当调用accept()函数接收来自客户端的请求后,返回的socket套接字,

2012-06-28 20:20:35 1910

原创 ubuntu中打开echo等标准服务

tcp/ip多数提供了一些标准因特网服务,如echo(回显)、daytime(时间获取)、discard(丢弃)等,为了应付针对它们的拒绝服务攻击和其他资源使用攻击,在如今的系统中,这些简单的服务通常被禁用。服务名(echo,daytime等)由/etc/services文件映射到端口号,如echo使用端口7。下面记录了在ubuntu 11.10打开这些服务的方法。1.安装openbsd-

2012-05-31 18:05:48 6935 2

原创 linphone源码分析----初始化部分

这几天比较轻松,所以打算好好来看看linphone的代码,源码版本为3.5.2。从linphone初始化的过程开始,首先来看linphone_core_new函数。 LinphoneCore *linphone_core_new(const LinphoneCoreVTable *vtable, const char *config_path, const char *factor

2012-05-14 11:44:44 12724 1

转载 谈 三层结构与MVC模式的区别

转自:http://www.cnblogs.com/wisdomqq/archive/2009/04/29/1446579.html在CSDN和园子里有朋友谈到三层与MVC的区别,以前也有人抛出这个问题,本人对来公司面试的朋友也偶乐会提这方面的问题。    那么我也来讲讲我对这两者的理解吧。    首先对这个题目,本身是存在问题的,“XX结构”与“XX模式”的区别?请问中国社会

2012-05-10 08:58:22 953

转载 DLL导出类的问题

DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。然而事实却没这么简单,导出类的DLL在维护和修改时有很多地方必需很小心,增加成员变量、修改导出类的基类等操作都可能导致意想不到的后果

2012-05-07 11:14:05 1290

原创 c++笔记 虚函数表内存布局

测试了一下vs2008中虚函数表的内存布局,测试代码如下:class A {public: virtual int getA() const { return a;}private: int a;};class B{public: virtual int getB(){return b;} private: int b;};cla

2012-05-06 14:30:21 1769

原创 c++笔记 关于标准库中容器内的元素

1.容器元素的条件    STL容器元素必须满足以下三个基本要求:1)必须可透过copy构造函数进行复制。    副本与原本必须相等,亦即所有相等测试的结果,原本与副本行为一致。所有容器都会在内部生成一个元素副本,并返回该暂时性副本,因此copy构造函数会被频繁地调用。所以copy构造函数应该尽可能的优化。2)必须可以透过assignment操作符完成赋值动作。

2012-04-18 23:53:31 961

原创 c++笔记 用组合代替继承

设计原则:多用组合,少用继承。考虑下面的情况:class Timer { virtual void onTick(); //定时器每滴答一次,此函数被调用一次。 }class Widget: public Timer {public: virtual void onTick();} 子类Widget需要重新实现onTick函数,怎么才能用组合实现呢?可以用下面的方法解决

2012-04-13 21:52:20 2405

原创 c++笔记 降低头文件间的编译依存关系

1.编译依存关系    某些时候只修改了某个类的private,结果却有一大堆文件需要编译。问题出在c++并没有把“将接口从实现中分离”这事做好。Class的定义式不只详细叙述了class接口,还包括十足的实现细目。例如:class Perpson {public: std::string name() const; std::string birthData() con

2012-04-12 22:04:13 1593 1

原创 c++笔记 遮掩继承

看一个例子:class Base {public: virtual void mf1() = 0; virtual void mf1(int){} virtual void mf2(){} void mf3(){} void mf3(double){}};class Derived: public Base {public: virtual void mf1(){}

2012-04-12 20:06:48 973

转载 Windows完成端口与Linux epoll技术简介

转自:http://www.cnblogs.com/liuweijian/archive/2009/12/27/1633657.htmlWINDOWS完成端口编程1、基本概念2、WINDOWS完成端口的特点3、完成端口(Completion Ports )相关数据结构和创建4、完成端口线程的工作原理5、Windows完成端口的实例代码Linux的EPoll模型

2012-04-10 11:44:57 1235

原创 c++笔记 构造/析构/赋值运算

1.copy构造函数与copy assignment操作符copy 构造函数被用来“以同型对象初始化自我对象”,copy assignment操作符被用来“从另一个同型对象中拷贝其值到自我对象”。class Widget { Widget(); //default构造函数 Widget(const Widget& rhs); //copy构造函数 Widget&

2012-04-10 00:22:39 768

原创 c++笔记 const关键字的使用

1.关于const指针    如果关键字const出现在星号左边,表示被指物为常量;如果出现在星号右边,表示指针自身是常量;如果出现在星号两边,表示被指物和指针两都都是常量。    注意被指物是常量时,以下两种写法意义相同:    const int *p;      int const *p;2.const成员函数    const成员函数不能修改类的数据成员,也就是

2012-04-08 22:33:13 880

转载 boost.bind用法

转自http://cunsh.ycool.com/post.1946109.html第9章 bind - boost头文件: boost/bind.hppbind 是一组重载的函数模板.用来向一个函数(或函数对象)绑定某些参数. bind的返回值是一个函数对象.它的源文件太长了. 看不下去. 这里只记下它的用法:9.1 对于普通函数假如有函数

2012-04-07 11:06:04 798

转载 C++11中值得关注的几大变化

赖勇浩(http://laiyonghao.com)声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Biggest Changes in C++11(and Why You Should Care)》一文,几乎所有内容都搬了过来,但不是全文照译,有困惑之处,请参详原文(http://www.softwarequalityconnection.com/2

2012-04-06 23:02:52 858

转载 使用Boost.Asio编写通信程序

使用Boost.Asio编写通信程序转自http://cpp.ezbty.org/content/science_doc/%E4%BD%BF%E7%94%A8boostasio%E7%BC%96%E5%86%99%E9%80%9A%E4%BF%A1%E7%A8%8B%E5%BA%8F摘要:本文通过形像而活泼的语言简单地介绍了Boost::asio库的使用,作

2012-04-06 17:26:22 2834

原创 boost 1.49编译及使用

1.下载下载最新的boost版本,连接不上sf所以找了另外一个地址,http://miranda-dev.googlecode.com/files/boost_1_49_0.7zboostpro提供编译好的二进制版本,http://www.boostpro.com/download/,不过版本较旧2.关于编译大部分的boost库是无需编译的,仅仅只需要包含头文件即可需要

2012-04-06 14:43:38 4510

原创 c++笔记 显式类型转换static_cast、dynamic_cast、const_cast、reinterpret_cast

旧式强制类型转换,用圆括号将类型括起来实现:int *ip;char *pc = (char*) ip;效果与使用reinterpret_cast符号相同,但这种强制类型转换的可视性比较差,难以跟踪错误的转换。标准c++为了加强类型转换的可视,引入命名的强制转换操作符。1.dynamic_castdynamic_cast支持运行时识别指针或引用的指向的对象。可以将基

2012-04-05 18:13:54 1083

原创 关于运行jar包时的一个错误

花了几天时间学习java,今天制作了一个jar包,遇到一个奇怪的问题,打好的jar包使用命令java -jar test.jar可以正确运行,但是双击或是在cmd中运行,提示下面的错误:C:\Users\Administrator>D:\work\temp\classes\test.jarException in thread "main" java.lang.NoClassDef

2012-04-04 23:43:46 5957

原创 Red5-0.9.1安装中的一个问题

今天在xp上安装setup-Red5-0.9.1.exe,结果一直没有启动成功,以前在win7安装过这个版本似乎没有问题。提示错误如下C:\Documents and Settings\Administrator>"D:\Program Files\Red5\red5.bat"Starting Red5Exception in thread "main" java.lang.NoC

2012-03-28 15:21:51 4147

live555_ex

live_ex在开源流媒体服务器live555的基础上,扩展了对avi、mp4两种文件格式的支持,媒体编码格式支持mp3、aac、mpeg4、h264,文件格式的解析由ffmpeg库实现

2012-05-22

Boost 库 .pdf

Boost 库 学习指南,介绍了boost一些入门知识

2012-04-06

ffmpeg-rtmp

包括三个文件ffmpeg.exe、ffplay、sdl.dll,编译时加入了librtmp库

2012-02-06

red5-0.9.1

red5是一个开源的rtmp服务器,是搭建视频分享平台很好的选择

2012-02-01

cmmb 标准文档

cmmb的标准1~8,开发CMMB必备的资料

2011-11-17

sip协议资料

包括SIP的RFC文档,及一些中文资料(据说是华为内部培训用的)

2011-11-16

An ffmpeg and SDL Tutorial

ffmpeg的一个自学教程中,例程01~05可编译运行通过的代码,ffmpeg版本为0.8.5

2011-11-15

AAC解码程序及源码

一个使用faad库解码AAC的小程序,只能解码ADTS格式帧文件

2011-11-11

为pcm添加wav头

一个小程序,可以为pcm数据加上wav头,方便测试

2011-11-10

空空如也

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

TA关注的人

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