摘要:
一、安装sofia-sip cd /usr/local/src/freeswitch-1.10.5.-release git clone https://github.com/freeswitch/sofia-sip.git cd sofia-sip ./configure make make in 阅读全文
摘要:
注意事项:除Direct I/O,与磁盘相关的文件的读写都有使用到Page cache技术。 Netty、Kafka和Mysql等开源组件都用到了零拷贝这个核心技术。 1、数据的四次拷贝和四次上下文切换 很用应用程序在面临客户端请求时,可以等价为进行如下的系统调用: 1 File.read(file 阅读全文
摘要:
1、配置网关 配置网关gw1 1 <include> 2 <gateway name="gw1"> 3 <param name="username" value="90231"/> 4 <param name="realm" value="112.242.28.98:5060"/> 5 <param 阅读全文
摘要:
C++11新增右值引用,谈到右值引用时可以扩展到一些相关概念: 左值 右值 纯右值 将亡值 左值引用 右值引用 移动语义 完美转发 返回值优化 一、左值、右值 概念1 左值:可以放到括号左边的东西叫左值 右值:不可以放到括号左边的东西就叫右值 概念2 左值:可以取地址并且有名字的东西就是左值 右值: 阅读全文
摘要:
环境:mac os + xcode 一、背景 作为c++程序员,相信我们都写过如下代码: void fun(int &x){} int main(int argc, const char * argv[]) { // insert code here... fun(10); return 0; } 阅读全文
摘要:
一、FreeSWITCH帮助终端穿越NAT 1、SIP穿越 FreeSWITCH默认使用acl来判断对方是否处于NAT环境中,配置如下: // internal.xml <param name="apply-nat-acl" value="nat.auto"/> nat.auto是ACL,包含了RF 阅读全文
摘要:
1、原因 掌握并发编程技术,利用多核处理来提升软件项目的性能是软件工程师一项基本技能。本文以c++语言为例,探索如何进行并发编程。内容涉及C++11,C++14以及C++17的主要内容。 测试环境:MacBook Pro ,处理器 M1, 编译器 gcc ,IDE xcode。 2、并发与并行 Er 阅读全文
摘要:
一、安装VC6.0时解决安装卡死故障 Custom(定制) 选Data Access,点更改选项 把第一项ADO, RDS, and OLE DB Providers的勾去掉, 会提示是必须组件,忽略即可。 安装SP5和SP6。 二、启动时解决单步调试故障 菜单Tools->Options中的Deb 阅读全文
摘要:
一、基础知识 现在的CPU多核技术都会有几级缓存,老的CPU会有两级缓存(L1和L2),新的CPU会有三级缓存(L1,L2,L3),如下图所示: 其中: L1缓存分为两种,一种是指令缓存,一种是数据缓存。L2缓存和L3缓存不分指令和数据。 L1和L2缓存在每一个CPU核中,L3则是所有CPU核心共享 阅读全文
摘要:
上一文介绍中,我们详述了网络数据包的接收和发送过程,并通过介绍5中IO模型了解了内核是如何读取网络数据并通知给用户线程的。 前面的内容都是以内核空间的视角来剖析网络数据的收发模型,本小节我们站在用户空间的视角来看一下如何对网络数据进行收发。 相对内核来讲,用户空间的IO线程模型相对简单一些。这些用户 阅读全文