- 博客(18)
- 资源 (56)
- 问答 (23)
- 收藏
- 关注
原创 【算法】memcached slabs内存分配算法详解
原文:http://blog.sina.com.cn/s/blog_7530db6f0100omfn.htmlMemcached Slab算法是根据powers of 2来将1MB的内存块划分成多个小内存块,而这1MB的内存块称为页:Powers of 2是2的n次方的意思,例如:2的0次方是1,2的1次方是2,2的2次方是4,2的3次方是8等等。而将1MB的内存按2的n次方划分可以划分成20种不同的内存块,因为2的20次方是1MB(1048576)。所以可以说,memcached管理着20种.
2020-11-30 23:50:03 582
原创 【Netty 】Netty 是什么?能做什么?
作者:老钱链接:https://www.zhihu.com/question/24322387/answer/282001188有了Netty,你可以实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,WebSocket服务器,Redis的Proxy服务器,MySQL的Proxy服务器等等。如果你想知道Nginx是怎么写出来的,如果你想知道Tomcat和Jetty是如何实现的,如果你也想实现一个简单的Redis服务器,那都应该好好理解一下Netty,它们高性能的原理都是类似的.
2020-11-29 01:44:59 411
原创 【vcpkg】vcpkg:用于 Windows、Linux 和 macOS 的 C++ 包管理器
官网:https://docs.microsoft.com/zh-cn/cpp/build/vcpkg?view=msvc-160&viewFallbackFrom=vs-2019vcpkgvcpkg 是用于 C++ 的一种命令行包管理器。它极大地简化了 Windows、Linux 和 macOS 上第三方库的购置与安装。如果项目要使用第三方库,建议通过 vcpkg 来安装它们。对于 Windows 目录中的库,vcpkg 会下载源,使用可以找到的最新版 Visual Studio ..
2020-11-27 22:54:40 1944 1
原创 【Thrift】Thrift框架和使用教程-- C/S框架使用教程
1、前言Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml),并由生成的代码负责RPC协议层和传输层的实现。在xxx.Thrift文件中用Thri.
2020-11-27 22:32:11 5546
原创 【存储】SDS软件定义存储,看这一篇就够了
原文:https://www.sohu.com/a/397070625_5057951.SDS科普SDS(Software Defined Storage)即软件定义存储,简单地说就是将存储硬件和软件进行分离,采用标准化硬件作为载体(如X86架构),基于软件实现企业级存储功能和服务。相对于传统存储硬件盒子,SDS中存储软件成为了核心。SDS通常都是分布式存储,形式分为文件存储(POSIX/NFS/CIFS)、对象存储(S3)和块存储(iSCSI/iSER/NVMeoF)三种。SDS的兴起源于
2020-11-27 22:15:12 3918 1
原创 【debug】debug排查顺序|没有core文件和日志如何定位?|内核日志
有时写c/c++程序,运行后出现core, 如果有core文件则可以gdb方便的定位问题,可是,当core文件找不到(或被删除)时如何定位?刚做了个测试,在没有core文件的情况下对程序bug进行定位cat test.cpp#include <iostream>int main(int argc, char **argv){ int *p = NULL; for(int i = 0; i < 15; i++) { ..
2020-11-25 16:52:26 2237 3
原创 【软件架构】软件架构师
软件架构(software architecture)软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现。一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。软件架构师工作:
2020-11-24 01:03:41 1792 1
原创 【质量】防御性编程
在使用常数作为比较的时候往往会将x == 0写作x = 0,会使得程序陷入错误,由此我们可以使用编译器特性。使用判断常数在左边0 == x而不是x == 0,使得0 = x可以被捕获为错误; 使用此用法在误写的0 = x时,编译器将始终将"0 = x"标记错误。...
2020-11-14 02:16:06 397
原创 【存储】块存储、文件存储和对象存储的区别?
存储类型:https://www.bilibili.com/video/BV1WE41177Kp?from=search&seid=1887114199876544924存储分类2:块存储:文件存储:对象存储:
2020-11-13 02:13:30 15062
原创 【C++】C++程序员的年终总结|技术栈|架构师学习路线
原文:https://zhuanlan.zhihu.com/p/73036307我越来越担心我作为一个C++程序员的未来。恍然间,发现自己在这个行业里已经摸爬滚打了五年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作的过程中却遭到了重大的挫折。详细过程我就不再叙述,在此,只想给大家说一说被拒绝的原因,看看大家有没有相似的经历,和类似的感悟。面试官对我的答复大致是这样的,我们不需要熟练工,我们需要在某领域拥有超过常人的积累认知,和拥有整套完整思维
2020-11-12 00:36:31 1774 1
原创 【MySQL】聚簇索引和非聚簇索引
[数据库系统内幕]这本书中对聚簇索引的:如果数据记录的顺序遵循搜索键的顺序,则这种索引称为“聚集簇索引”。书中还详细讲解到:聚簇索引中的数据记录,通常与索引存储于同一个文件中,有时也存放在单独的聚簇文件中,而这些文件均保留了键的顺序。如果数据存储在单独的文件中,且其顺序不遵循键顺序,则索引为非聚簇索引。链接:https://www.jianshu.com/p/b72c59b61efd聚簇索引聚簇索引是一种数据的存储方式,它的数据行只存放在索引(B+树)的叶子中,内部节点不存放..
2020-11-11 13:11:36 500
原创 【linux】linux C 程序 注册信号处理函数
static void signal_handler_reboot(int32_t theSignal){ int i; int sockfd; char log_str_buf[LOG_STR_BUF_LEN]; signal(SIGPIPE, SIG_IGN); if (SIGKILL == theSignal || SIGTERM == theSignal) //we can know when system excute child thread is end { snprint.
2020-11-08 01:27:21 1133
原创 【多进程】Linux中fork()函数详解|多进程
原文:https://blog.csdn.net/kxjrzyk/article/details/81603049一、fork入门知识一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程.
2020-11-06 23:49:36 2942
原创 【STL】c++优先队列(priority_queue)用法详解
特性和基本操作包含头文件:既然是队列那么先要包含头文件#include <queue>特性:和queue的不同在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的和队列基本操作相同:top 访问队头元素 empty 队列是否为空 size 返回队列内元素个数 push 插入元素到队尾 (并排序) emplace 原地构造一个元素并插入队列 pop
2020-11-02 03:10:16 696
原创 【C++】STL中heap函数的用法(make_heap,push_heap,pop_heap,sort_heap,is_heap,is_heap_until)
简介make_heap()将区间内的元素转化为heap.push_heap()对heap增加一个元素.pop_heap()对heap取出下一个元素.sort_heap()对heap转化为一个已排序群集.用法template<typename T>inline void INSERT_ELEMENTS(T &coll, int first, int last){ for (int i = first; i <= last; ++i) .
2020-11-02 02:31:41 3633
原创 【算法】C++算法 求数组中最小的K个数
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。解法一:排序后,取出前k个数。O(nlogn)。代码略。解法二:建立n个元素的最小堆,每次去除堆顶的最小值,然后弹出堆顶,重新构成最小堆。O(klogn)class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k..
2020-11-02 02:12:09 2590
CP丢包对带宽性能的影响分析(Analysing TCP performance when link experiencing
2023-11-26
Argobots: A Lightweight Threading Framework for Massive Fine-Gra
2023-09-30
mellanox RDMA MLNX-OFED Documentation Rev 5.7-1.0.2.0-11-15-2022
2022-11-15
A Review of Lightweight Thread Approaches for High Performance
2022-09-18
DISTRIBUTED ASYNCHRONOUS OBJECT STORAGE (DAOS)
2022-09-10
大文件切割FileSplitter+CoolFormat3.4+Sublime Text 3
2022-08-17
DAOS_A_Scale-Out_High_Performance_Storage_Stack_fo.pdf
2022-08-15
18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC1
2022-08-08
基于可靠连接和高效资源共享的可扩展 RDMA RPC
2022-02-12
连接服务器失败(错误原因:Connection refused) error 111 抓包结果
2022-01-25
删除文件只保留最新的n个文件的shell脚本
2021-09-08
启用英特尔QuickAssist 技术 (QAT)NA-360_technical_announcement.pdf
2021-08-13
shell 脚本怎么删除 匹配字符之间的行?
2023-03-01
我写的IP转interface的shell脚本错哪里了呢?
2022-12-10
ifconfig 除了列出网口信息还有一堆不知道是什么?
2022-10-27
为什么程序能用getenv读到的环境变量我printenv打印不出来?
2022-09-23
find 后调用 -exec 执行多条语句的方法是?
2022-09-09
如何设置scons的环境变量?
2022-08-25
Gcc编译代码报错/usr/bin/ld: cannot find abt
2022-08-23
为什么popen没有执行里面的shell脚本?
2022-05-19
linux 的buff/cache有必要手动清除吗?
2021-12-06
linux怎么查看线程的父进程?
2021-10-26
C++11的allocator::construct如何构造多参数对象?
2021-09-25
C++11启动线程时怎么给线程分配名字?
2021-09-22
linux 的core file的时间戳怎么样才能变成日期格式
2018-02-26
关于protobuff,json等协议数据跨语言传输的一些问题
2017-11-09
servlet应该放在哪个文件夹?servlet-class的根目录是哪里?
2017-10-19
如何实现子Div的大小随着父Div的大小动态的改变而改变
2017-09-24
如何实现点击页面上的图片改变服务器上某个文件的JSON数据?
2017-08-07
pentaho,Kylin, Mondrian, Saiku之间到底是什么样的关系?
2017-07-16
Echart和WPF chart 比有什么优势吗?为什么Echart的JS库如此热门?
2017-06-22
shell函数内如何改变参数的值?类似于C语言一样参数指针传递
2017-05-21
shell怎么调用一个子脚本之后 让自己可以退出不必等子脚本
2017-05-20
linux 的core file的时间戳怎么样才能变成日期格式
2016-09-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人