自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(266)
  • 资源 (3)
  • 收藏
  • 关注

原创 推荐大佬博客地址合集

live555代码解析:乌合之众:https://my.oschina.net/oloroso

2019-08-27 11:06:25 331

原创 vim用16进制打开文件

不安装winhex如何打开2进制文件

2022-12-14 22:40:01 529

转载 三分钟带你搞懂分布式链路追踪系统原理

分布式链路追踪系统原理

2022-09-09 14:25:27 414

转载 运行时动态库:not found 及介绍-linux的-Wl,-rpath命令

makefile中使用-Wl,-rpath 解决运行时无法找到动态库的问题

2022-08-15 20:04:13 2707

转载 哈夫曼编码(Huffman Coding)多图详细解析

哈夫曼编码哈夫曼编码,又称为霍夫曼编码,它是现代压缩算法的基础。假如我们需要将字符串ABBBCCCCCCCCDDDDDDEE通过二进制编码进行传输,那应该怎么将字符转换为二进制码?方法一:转换为ASCII码直接将字母转换为对应的ASCII码数字,再将ASCII码转换为对应的二进制码字母 ASCII码 二进制码A 65 100 0001B 66 100 0010C 67 100 0011D 68 100 0100E 69 100 0101显然这样的方式使得二进制码变得很长。方法二:事先约

2022-05-15 16:35:53 20418 5

转载 哈夫曼编码

目录一、哈夫曼编码的由来二、构造哈夫曼编码的方法三、哈夫曼编码的构造实例四、哈夫曼编码的性质五、哈夫曼编码的算法实现六、哈夫曼编码的应用举例——文件的编码和解码一、哈夫曼编码的由来1、在远程通讯中,要将待传字符转换成由二进制的字符串如下图所示:如上图所示若将每个字符都用同样位数的二进制数来表示的话会产生浪费。但如果将编码设计为长度不等的二进制编码,即让待传字符串中出现次数较多的字符采用尽可能短的编码,则转换的二进制字符串便可能减少。如下图所示:而哈夫曼编码刚好满足前缀编码的要求,并却

2022-05-15 16:23:23 3364

转载 一文搞懂H264量化原理以及计算过程

1.概述量化是使数据比特率下降的有效工具。量化过程的输入值动态范围很大,需要较多的比特才能表示一个数值,量化后的输出则只需要较小比特表示。量化是不可逆过程,处理过程中有信息丢失,存在量化误差。H.264采用标量量化技术,它将每个图像样点编码映射成较小的数值。一般标量量化器的原理为:F Q = r o u n d ( y / Q P ) FQ=round(y/QP)FQ=round(y/QP)其中,y 为输入样本点编码,QP 为量化步长,FQ 为 y 的量化值,round()为取整函数(其输出为与输

2022-05-14 14:06:37 2016

转载 一次spinlock死锁故障的定位

一次spinlock死锁故障的定位1350阅读 0评论2015-07-21 humjb_1983分类:LINUX本文讲述一次spinlock死锁故障的定位过程,目的不在于问题本身,而在于展现一个内核bug的分析过程,提供一种分析思路,供大家参考。一、问题现象内核出现panic,kdump搜集到了vmcore。vmcore中直接导致panic的log信息为(包含相应CPU上的堆栈):点击(此处)折叠或打开Kernel panic - not syncing: Watchdog detected

2022-05-12 20:45:21 1289

转载 H.264系列文章(三)——帧内预测

H.264 White Paper学习笔记(二)帧内预测为什么要有帧内预测?因为一般来说,对于一幅图像,相邻的两个像素的亮度和色度值之间经常是比较接近的,也就是颜色是逐渐变化的,不会一下子突变成完全不一样的颜色。而进行视频编码,目的就是利用这个相关性,来进行压缩。很好理解,存储一个像素的亮度值可能需要8个bit,但是如果相邻的两个像素变化不大,我存储一个像素的原始值,以及第二个像素相对第一个像素的变化值,那么第二个值我可能用2个bit就够了,这就节约了很多的空间。而节约存储消耗的bit数,也就是节约码率

2022-05-11 23:08:04 1991

转载 技术分享 | TCMALLOC解决MYSQLD实例引发的CPU过高问题

背景MySQL 版本:5.6.29,普通主从OS:CentOS 6.8最近一段时间线上某实例频繁报警CPU飙高,每次都捕获到同一种 SQL,结构如下:select uid from test_history where cat_id = ‘99999’ and create_time >= ‘2019-07-12 19:00:00.000’ and uid in (…)其中uid一次性会传入上百个。表结构为Create Table: CREATE TABLE test_history (

2022-05-11 20:25:32 312

转载 GBK 编码

GBK编码范围:8140-FEFE,汉字编码范围见第二节:码位分配及顺序。GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准。GBK编码依然采用双字节编码方案,其编码范围:8140-FEFE,剔除xx7F码位,共23940个码位。共收录汉字和图形符号21886个,其中汉字(包括部首和构件)21003个,图形符号883个。GBK编码支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。GBK编码方案于1995年12月

2022-05-09 22:46:58 58861

转载 shell解析ini文件

做个shell解析ini文件,用作搭建HA框架中的解析ini配置文件测试的ini文件是系统里面搜到的一个Example driver definitionsDriver from the postgresql-odbc packageSetup from the unixODBC package[PostgreSQL]Description = ODBC for PostgreSQLDriver = /usr/lib/psqlodbc.soSetup = /usr/lib/libodbc

2022-04-28 20:24:09 752

转载 awk命令详解【非常实用】

shell三剑客:grep、sed、awkcut-c:字符数来截取 character-f:字段来截取 field-d:指定分隔符 默认是tabawk命令详解awk其实可以看做一种编程语言。awk的来源:三个人名:Alfred Aho,Peter Weinberger,Brian Kernighanawk工作原理gawk (gnu awk)Unix中awk的GNU版本,完成grep和sed的工作 。支持数学运算,流程该控制内置大量的变量和函数。awk命令工作原理与sed一样, 均

2022-04-28 20:08:24 10542

转载 一文教你入门shell脚本4.0——Shell数组详解

Shell数组详解一、Shell数组1、定义2、特征3、使用3.1、定义数组实例3.2、获取数组元素3.3、数组长度3.4、数组拼接3.5、数组删除二、Shell关联数组1、定义2、使用2.1、定义数组实例2.2、获取数组元素以及所有元素的下标和值2.3、数组长度2.4、关联数组实例参考一、Shell数组Shell 也支持数组。数组(Array)是若干数据的集合。1、定义定义数组的一般形式为:array_name=(ele1 ele2 ele3 … elen)

2022-04-28 11:47:48 1305

转载 shell脚本获取文件中key/value的小方法

方法有N种,awk、sad、grep、cut。。。以上几种方式不写了,就写两个不太常用到的。废话少说,直接上代码:cat a.txtaa.gif=aaaa.gifbb.gif=bbbb.gifcc.gif=cccc.gif方法一:#!/bin/shwhile read linedok=KaTeX parse error: Expected '}', got 'EOF' at end of input: …line%=*} v={line#*=}echo "$k : $v"

2022-04-28 11:06:20 2093

转载 awk命令详解

https://blog.csdn.net/anqixiang/article/details/117903529

2022-04-28 10:22:55 88

转载 sed -i命令详解及入门攻略

sed -i命令详解sed入门详解教程sed 是一个比较古老的,功能十分强大的用于文本处理的流编辑器,加上正则表达式的支持,可以进行大量的复杂的文本编辑操作。sed 本身是一个非常复杂的工具,有专门的书籍讲解 sed 的具体用法,但是个人觉得没有必要去学习它的每个细节,那样没有特别大的实际意义。网上也有很多关于 sed 的教程,我也是抱着学习的心态来学习 sed 的常见的用法,并进行系统的总结,内容基本覆盖了 sed 的大部分的知识点。文中的内容比较简练,加以实际示例来帮助去理解 sed 的使用。一、

2022-04-28 09:55:12 38564 2

转载 简单高效的 delegate 方法

使用 Objective-C 或者 Java 的都对其中的 delegate 方法印象很深,而在我们经常使用的 C++ 中虽然也有所谓的 Callback,但是似乎还挺麻烦的。有没有一个更好的实现方法呢?有的,国外的《Member Function Pointers and the Fastest Possible C++ Delegates》这篇文章就给了我们一个简单方便的实现库。原理在作者的文章中已经讲得很详细了,我们这里简单讲一下使用方法:#include #include “FastDeleg

2022-04-13 10:53:16 206

转载 UML六种关系

泛化:(Generalization):表示继承关系, 表示类/接口对父类/接口的功能扩展.java语法中的extends, 用来扩展父类或父接口的功能.图形表示: 带三角箭头的实线, 箭头指向父类或父接口.泛化关系.png代码表示class Child extends Parent {}实现(Realization):表示类实现接口定义的行为或功能.java语法中的implements.图形表示:带三角箭头的虚线, 箭头指向接口.实现关系.png代码表示class Plane

2022-03-31 20:16:38 301

转载 UML类图

1.类图基础属性类图的表示-表示private#表示protected~表示default,也就是包权限_下划线表示static斜体表示抽象2.类与类之间关系在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)类与类之间的关系2.1泛化介绍:泛化(Generalization)表示类与类之间的继承关

2022-03-31 20:14:34 234

转载 【操作系统】内存分页

操作系统是一个非常深层次的领域,想学好的话可以说是一个非常困难的事情,不过操作系统涉及的范围很广,我们可以研究一些我们感兴趣、或者说离我们近一些的部分。比如:内存管理,明白了内存管理,可以对整个操作系统的工作会有一个初步的轮廓。虚拟内存如果你是电子相关专业的,肯定在大学里捣鼓过单片机。单片机是没有操作系统的,所以每次写完代码,都需要借助工具把程序烧录进去,这样程序才能跑起来。另外,单片机的 CPU 是直接操作内存的「物理地址」。在这种情况下,要想在内存中同时运行两个程序是不可能的。如果第一个程序在.

2022-03-29 18:55:05 752 2

转载 大数据问题集

1>海量日志数据,提取出某日访问百度次数最多的那个IP。首先对于某日,提取出访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意IP是32位的,最多的IP个数2^32,相当于4G的大小(不可以一次放入到主内存当中)。同样可以采用映射的方法,比如模1000,将整个大文件映射成1000个小文件,再找出每个小文件中频率较大的几个IP(采用hash_map进行频率统计)然后再在这1000多个甚至更多的IP中找出最大的那个,即是题目所要求的那个IP。2>搜索引擎会通过日志文件把用户每次检索使用

2022-03-15 14:51:11 174

转载 WebRTC视频JitterBuffer详解

WebRTC视频JitterBuffer详解1 WebRTC版本2 概要3 JitterBuffer结构和基本流程4 帧完整性 - PacketBuffer4.1 包缓存4.2 帧的开始和结束4.3 插入RTP数据包 - PacketBuffer::InsertPacket4.4 处理RTP填充包 - PacketBuffer::PaddingReceived4.5 丢包检测 - PacketBuffer::UpdateMissingPackets4.6 连续包检测 - PacketBu

2022-03-02 15:46:14 498

转载 jitter buffer QoS的解决方案

本文主要介绍一种QoS的解决方案,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.helpQoS出现的背景:而当网络发生拥塞的时候,所有的数据流都有可能被丢弃;为满足用户对不同应用不同服务质量的要求,就需要网络能根据用户的要求分配和调度资源,对不同的数据流提供不同的服务质量:1、对实时性强且重要的数据报文优先处理;2、对于实时性不强的普通数据报文,提供较低的处理优先级,网络拥塞时甚至丢弃。为了满足上述需求,QoS出现了,定义如下:QoS(Quali

2022-03-02 15:45:00 214

转载 git clone 出现fatal: unable to access ‘https://github 类错误解决方法

git clone 遇到问题:fatal: unable to access ‘https://github.comxxxxxxxxxxx’: Failed to connect to xxxxxxxxxxxxx将命令行里的http改为git重新执行。————————————————版权声明:本文为CSDN博主「若曦爹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/gbz3300255/article/deta

2022-03-01 11:36:19 3732

转载 移动直播技术秒开优化经验

现今移动直播技术上的挑战要远远难于传统设备或电脑直播,其完整的处理环节包括但不限于:音视频采集、美颜/滤镜/特效处理、编码、封包、推流、转码、分发、解码/渲染/播放等。直播常见的问题包括主播在不稳定的网络环境下如何稳定推流?偏远地区的观众如何高清流畅观看直播?直播卡顿时如何智能切换线路?如何精确度量直播质量指标并实时调整?移动设备上不同的芯片平台如何高性能编码和渲染视频?美颜等滤镜特效处理怎么做?如何实现播放秒开?如何保障直播持续播放流畅不卡顿?本次分享将为大家揭开移动直播核心技术的神秘

2022-02-24 20:05:54 270

转载 C++ STL: map自定义键值类型

map定义map是STL里的一个模板类,用来存放<key, value>键值对的数据结构,它的定义如下。template < class Key, //map::key_tpe class T, //map::mapped_type class Compare = less<Key>, .

2022-02-24 19:17:20 1288

转载 C++ STL:unordered_map 自定义键值类型

unordered_map的定义下面是unordered_map的官方定义。template<class Key, class Ty, class Hash = std::hash<Key>, class Pred = std::equal_to<Key>, class Alloc = std::allocator<std::pair<const Key, Ty> > > class unordere.

2022-02-24 19:15:39 2472

转载 在linux下面使用Jsoncpp,在编译时添加了头文件搜索路径-Ixxxx/json ,导致很多错误,如下: In file included from /usr/include/x86_64-li

在linux下面使用Jsoncpp,在编译时添加了头文件搜索路径-Ixxxx/json ,导致很多错误,如下:In file included from /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h:482:0,from /usr/include/c++/5/iostream:38,from JsonProcess.cpp:1:/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h:44:

2022-02-24 16:11:40 1643

转载 redis5.0 有key未命中事件_如何提高及优化 redis 缓存命中率

引子:1、命中率的概念:客户端获取缓存数据的时候会出现命中率问题,那么命中率是什么那,通俗点说,命中 (hit)就是查询到了缓存结果,没有命中(miss)就是没有查询到缓存结果。用 命中 (hit)数量除( hit 加 没有命中miss 的 总数),得出的就是命中率。公式如下:hits /( hits + miss)= 命中率 % 。2、在redis 如何查看命中率那?我们可以使用redis-cli 连接服务端后,执行 info 命令查看。127.0.0.1:6379> info返回

2022-02-23 09:11:14 2501

转载 CentOS 7 安装 libcurl with openssl

最近项目需要重新编译libcurl 使其支持ssl,在这里进行记录:下载openssl : curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1g.zipSRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。创建安装目录:/opt/openssl配置openssl动态库:./config --prefix=/opt/openssl --shared # 默认安装在 /usr/l

2022-02-21 18:56:38 1700

转载 socket编程之select

1.socket阻塞模式所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回2.socket非阻塞模式(select)所谓非阻塞方式non- block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,而进程或线程继续执行,所以效率较高select相关API介绍与使用#incl

2022-02-21 16:11:01 3500

转载 使用 Valgrind 检测 C++ 内存泄漏

Valgrind 的介绍  Valgrind 可以用来检测程序是否有非法使用内存的问题,例如访问未初始化的内存、访问数组时越界、忘记释放动态内存等问题。在 Linux 可以使用下面的命令安装 Valgrind:123456$ wget ftp://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2$ bzip2 -d valgrind-3.13.0.tar.bz2$ tar -xf valgrind-3.13.0.tar$ cd va

2022-02-21 15:55:35 684

转载 c++技术栈

精进基石高性能网络设计基础组建设计中间件开发开源框架性能分析分布式架构上线实战

2022-02-16 20:51:37 1091

转载 进程间通信——共享内存(Shared Memory)

共享内存是System V版本的最后一个进程间通信方式。共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空间中,所有的进程都可以访问共享内存中的地址。如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。特别提醒:共享内存并未提供同步机制,也就是说,在第一个进程结束对共享内存的写操作之前,并无自动机制

2022-02-16 20:05:16 10781

转载 进程通信之消息队列

目录消息队列的概念msgsend.c, msgreceive.c输出(一)消息队列的概念定义:是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。有写权限的进程可以向消息队列中添加新消息;有读权限的进程则可以从消息队列中读走消息。消息本质上是一种数据结构。暂且这样,先要会用,会用了可以继续研究内部实现过程。用都不会用,太纠结实现原理,在有限时间内,是得不偿失的。(二)通信流程下面只对用到的函数参数分析及代码解析,最后给一个编程思路。下面涉及两个文件,msgsend.c与

2022-02-16 20:04:01 446

转载 如何理解IO多路复用的三种机制Select,Poll,Epoll?

1.如何理解IO多路复用的三种机制Select,Poll,Epoll?1.Select首先先分析一下select函数int select(int maxfdp1,fd_set *readset,fd_set *writeset,fd_set *exceptset,const struct timeval *timeout);1234567【参数说明】int maxfdp1 指定待测试的文件描述字个数,它的值是待测试的最大描述字加1。fd_set *readset , f

2022-02-16 16:58:01 668

转载 C++11常用特性的使用经验总结

概述及目录(原创博客,版权所有,转载请注明出处 http://www.cnblogs.com/feng-sc)  C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方面的知识,也得益于很多其他网友的总结。本博客文章是在学习的基础上,加上博主在日常工作中的使用C++11的一些总结、经验和感悟,整理出来,分享给大家,希望对各位读者有帮助,文章中的总结可能存在很多不完整或有错误的地方,也希望读者指出。大家可以根据如下目录跳到自己需要

2022-01-26 11:20:35 221

转载 systemctl开机启动设置

常用的systemctl命令以sshd服务为例,列出常用systemctl命令:启动sshd服务:systemctl start ssh.service停止sshd服务:systemctl stop ssh.service查看sshd服务状态:systemctl status ssh.service重启sshd服务:systemctl restart ssh.service设置开机自启动:systemctl enable ssh.service禁止开机自启动:systemctl disable

2022-01-12 15:36:02 10037

转载 FFmpeg代码实现视频转jpg图片

如何把视频保存成图片呢?其实我们很早就知道,视频实际上就是由一帧帧的图像组成,只不过是动起来的图像,那么就不难理解怎么把视频存成图片了。在这里,我使用了FFmpeg编解码的方式,处理流程如下: 先看看,我的处理流程: (1).打开视频文件;(2)获取视频流;(3)找到对应的解码器;(4).初始化解码器上下文;(5).设置编解码器参数;(6)打开解码器;(7)读取视频帧;(8)发送等待解码帧;(9).接收解码帧数据;int main(int argc, char *argv[]) {//解码视.

2022-01-10 13:55:53 1153

Pre-built.2.rar

pthreads库,windows版本,32位,亲测可用

2022-01-09

webservice.rar

webservice客户端和服务端传输字符串代码示例

2022-01-06

Jsoncpp支持longlong

c++的Json支持源码,支持longlong、int、double等基础类型。

2018-06-26

空空如也

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

TA关注的人

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