- 博客(37)
- 资源 (45)
- 问答 (15)
- 收藏
- 关注
原创 【交易】撮合交易
试利用单链表作为存放委托的数据结构(撮合队列),编写一模拟股票交易的程序,该程序有以下几个功能:1. 委托申请:输入:每个委托包括四个数据项,股票编码( 4 位数字)、价格(浮点数)、数量(整数)、买 / 卖( B/S )输出: a. 程序为每个委托产生一个唯一的序号( d ),该序号从 1 开始; b. 每笔成交包括:成交价格( %6.1f )、成交量( %4d )、新的委托序号( d )、匹配的委托序号( d )。2. 查询未成交的委托:输入:股票编码输出:按撮合队列中委托的顺序
2020-08-31 01:06:58 830
原创 【Linux】Linux内核学习--- 学习中
Linux 5大模块一、进程调度模块 Linux以进程作为系统资源分配的基本单位,并采用动态优先级的进程高级算法,保证各个进程使用处理机的合理性。进程调度模块主要是对进程使用的处理机进行管理和控制。【进程创建】: 在Linux环境编程时,一般采用fork()/vfork()函数(fork 是 创建一个子进程,并把父进程的内存数据copy到子进程中;vfork是 创建一个子进程,并和父进程的内存数据share一起用)来创建新的进程,当然,那是在用户空间的函数,它会调用内核...
2020-08-30 21:49:16 288
原创 【epoll】epoll的水平触发和边沿触发,及为什么边沿触发必须使用非阻塞?
epoll有两种触发方式水平触发(level trigger,LT)与边沿触发(edge trigger,ET)水平触发与边缘触发的区别:水平触发:只要缓冲区有数据就会一直触发边沿触发:只有在缓冲区增加数据的那一刻才会触发下面举一个例子说明这两者的区别/* 使用边沿触发 */ #include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>.
2020-08-30 07:48:23 1718
原创 【Linux】error while loading shared libraries: libevent-2.1.so.6 的解决办法|动态库.so找不到的解决办法
执行memcached启动命令时,报错,提示:error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory查看 memcached 命令缺失什么库ldd /usr/local/memcached/bin/memcached结果: libevent-2.1.so.6 模块找不到查看 libevent-2.1.so.6 是否存..
2020-08-30 04:40:10 2492
原创 【C++】后台服务器C++面试题
c++ static关键字的作用(https://www.cnblogs.com/songdanzju/p/7422380.html)一、首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0.第一条也是最重要的一条:隐藏。(static函数,static变量均可)当同时编译多个文件时,加static前缀的全局变量和函数只有本模块可见static的第二个作用是保持变量内容的持久。(static变量中的记忆功能和全局生存期)存储在静..
2020-08-29 01:57:20 461
原创 【github】github fork之后的操作
github fork之后的操作denvey关注0.3082015.12.30 10:01:15字数 814阅读 2,175因为我 Fork 了 Mojo 的项目,这样才学会了如何使用 github. 因为其它一些项目是自己创建的,也就学不会怎么和其它团队合作。 现在给这部分不一样的经验分享给大家。希望有利于大家参与到开源的项目来。1. 提交自己本地项目的修改到 github 的库中.如果你自己的项目,或者是其它人的项目, 你 Fork 了以后, 一定是到本地来进行开发和测试。.
2020-08-28 20:50:52 1006
原创 【C++11】C++11 序列化库 cereal----- 未消化,待学习
cereal —— C++11 序列化库介绍cereal是一个只包含头文件的C++序列化库,cereal支持任何类型的数据并可以将其序列化为不同形式,例如:二进制、XML或者JSON。cereal的设计理念是快速、轻量级和容易扩展——cereal没有依赖第三库而且可以轻易的将其和其他代码相。cereal 完整支持 C++11cereal 已经支持 C++11 标准库中的所有类型了,而且 cereal 也完全支持继承和多态。为了保持 cereal 的简洁性并不降低性能,cereal 没有像
2020-08-27 15:18:46 1311
原创 【linux】yum命令|替换yum源|替换apt源|EPEL/ELRepo
命令:#查看软件包 yum list all ##列出yum源仓库里面的所有可用的安装包 yum list installed ##列出所有已经安装的安装包 yum list available ##列出没有安装的安装包 #安装软件 yum install softwarename ##安装指定的软件 yum reinstall softarename .
2020-08-27 10:49:34 13868 6
原创 【Makefile】自动生产makefile的工具autotools(autoconf和automake)和autogen.sh、configure、make 三剑客
前言make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,使用make和 makefile工具理顺各个源文件之间纷繁复杂的相互关系。手工编写Makefile,对任何程序员都是一场挑战。Autoconf及Automake这两套工具使得编写makefile不再是一个难题。利用 GNU Autoconf 及 Automake 这两套工具来协助我们自动产生 Makefile文件,并且让开发出来的软件可以像大多数源码包那样,只需"./configure", "make","make inst
2020-08-26 22:58:21 4597 3
原创 【Epoll】Epoll 开发中 setsockopt用法详解|socket 编程setsockopt用法详解
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历TIME_WAIT的过程:BOOL bDontLinger = FALSE;setsocko...
2020-08-26 03:04:53 437
原创 【C++】广度/深度优先算法(bfs+dfs)理解+例题+对比 --- 未消化
例题:《迷宫问题》定义一个二维数组:0 0 1 0 1 //0表示可走,1表示墙0 1 1 1 0 //只能↑↓←→走,不能斜着走0 0 0 0 0 0 1 1 1 00 0 0 1 0 //题目保证了输入是一定有解的求从左上角(0,0)到右下角(4,4)的最短路线。bfs解题核心逻辑伪代码:1,将起点推入队列中;2,将起点标识为已走过;while(队列非空){ 3,取队列首节点vt,并从队列中弹出; 4,探索上面取出得节点的周围是否有没走过的节点v..
2020-08-25 02:04:50 419
原创 【Linux】C/C++代码格式化工具:Astyle最简使用说明
简介C/C++代码格式化工具,也可以格式化Java与C#。安装下载 解压tar -zxvf astyle安装包 进入编译目录cd astyle目录/build/gcc 编译make 安装make install 测试astyle -h使用按照风格给单个文件格式化astyle --style=风格 代码文件常用风格有gnu、linux和google把给定文件夹内的所有代码文件格式化(不包括子文件)astyle --style=风格 src/*.cpp includ
2020-08-24 02:46:28 829
原创 【OpenResty 】OpenResty 是什么,究竟解决了什么痛点?
OpenResty 是什么openresty可看成是:集成了lua组件的nginx解决了什么痛点?只能说当初解决了nginx不可编程的问题,所以给nginx加了个lua jit,而且前人基于openRsety做了不少的库,所以能在nginx更方便方便编程,就这点解决了不少人的痛点。虽然nginx官方后来也推出nginScript,但是它官方推动的不好,或者说它的库还远远不够用,导致nginScript的基础设施建设就没赶上openResty,但确实给人似乎多了一种选择。当然就我个人而言.
2020-08-23 13:21:40 805
原创 【知识】GNU C 、ANSI C、标准C、标准c++区别和联系
GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。它在编写linux的时候自己制作了一个标准成为GNU C标准。ANSI美国国家标准协会,它对C做的标准ANSI C标准后来被国际标准协会接收成为标准C所以ANSI C和标准C是一个概念总体来说现在linux也支持标准C,以后标准C可以跨平台,而GUN c一般只在linux c下应用18.1 ANSI C和标准C++的差别这里的ANSI C指的是最...
2020-08-22 23:37:12 1512 1
原创 【Git】Git GUI使用方法(Git可视化客户端使用方法)
原文:https://www.cnblogs.com/iruxu/p/gitgui.html配置账号 运行gitbash 1 2 git config --global user.name"Your Name" git config --global user.email you@example.com 安装https://git-scm.com/download/权限校验首先,您的数据保存在远端服务器一份,服务器需要对您的.
2020-08-22 15:47:05 19681 1
原创 【代码质量】程序质量管理|项目管理
目录程序质量管理(一)——关于Review程序质量管理(二)——关于静态代码扫描程序质量管理(三)——关于分支管理程序质量管理(四)——关于配置表管理程序质量管理(一)——关于ReviewReview是日常开发中一个非常重要的步骤,尤其对于项目临发布阶段,或者团队成员水平参差不齐的情况下。我目前采取的管理策略是利用Review Board平台供团队成员发布Review,在Web上完成Review的工作;在版本控制工具的后台设置触发器,检测提交是否是经过Review的,没有完.
2020-08-21 23:31:01 594
原创 【epoll】epoll多路复用和Reactor设计思想---编辑中
1、Reactor设计思想小前言:reactor是对epoll的一层封装 ,epoll是对io进行管理,reactor将对io的管理转化为对事件的管理Reactor必要传统OIO模式如图2.1所示为传统IO模式处理示意图:图中所示一般是一个请求一个单独的处理线程。代码:https://www.jianshu.com/p/f830898983f6缺点:server的accpet操作是阻塞的,业务处理中的handler中的读写请求也是阻塞的。那么这样的一种IO模式将会导致一.
2020-08-21 01:00:55 2119
原创 【CAS】CAS原理|乐观锁
前言CAS的原理CAS的缺陷1.ABA问题2.循环时间长开销大3.只能保证一个共享变量的原子操作CAS开销CAS算法在JDK中的应用前言这个视频解释很不错:《大厂面试题:CAS原理怎么回答比较好》https://haokan.baidu.com/v?vid=8074278900654133189&pd=bjh&fr=bjhauthor&type=videoCAS的原理1、什么是CAS?CAS:Compare and Swap,.
2020-08-20 01:50:51 444
原创 【代码质量】静态代码检测pc-lint, visual lint, cpp-check(pclint、cppcheck、TscanCode)
引言静态代码分析是指无需运行被测代码,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,找出代码隐藏的错误和缺陷。如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。统计证明,在整个软件开发生命周期中,30% 至 70% 的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的。主流静态代码扫描工具概况腾讯TSC团队自主研发的tscancode工具、cppcheck、coverity、clang、pclint费用和活跃....
2020-08-20 00:40:58 8421 5
原创 【微服务】Etcd实现服务器注册和发现|Etcd、Eureka、Consul、Zookeeper 比较
etcd除了受到Zookeeper与doozer启发而催生的项目,还拥有与之类似的功能外,更具有以下4个特点:简单:基于HTTP+JSON的API让你用curl命令就可以轻松使用。 安全:可选SSL客户认证机制。 快速:每个实例每秒支持一千次写操作。 可信:使用Raft算法充分实现了分布式。至于为什么不用zookeeper或者eureka等,除了根据项目考虑之外,就看个人喜好了,如果有哪位大佬知道更多内容,麻烦也在留言区告知小编一下,万分感谢!以下是常用的服务发现产品之间的比较:F...
2020-08-19 11:54:40 2550 2
原创 【简历】程序员简历
目录写简历前,要有料知识储备简历内容描述写简历前,要有料我们写代码的很容易觉得会用的就是会了,其实面试官希望你不仅仅如此:“……真的应该好好地静下心来,深入地研究一些东西,自己写一些东西,而不是这也用过,那也知道,但是多半都是局限于仅仅见过,会用,却从来没有认真思考过其代码背后蕴含的思想,更少有人研究过源码,进而体会大师们在某些问题的解决上秉承的思想和思维的风格。”也就是说,我们除了会用,还要了解其中的原理,比如被问过:valgind的原理,GDB的原理,Map的底...
2020-08-19 03:52:05 446
原创 【hashmap】HashMap原理及线程不安全详解|哈希表原理
目录HashMap原理1、put方法原理2、get方法原理HashMap 扩容(resize)HashMap的高并发问题(线程不安全)HashMap原理HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,数组初始化长度为16,数组中的每一个元素初始值都是null,这个数组就是HashMap的主干。1、put方法原理当调用hashMap.put("apple", 0) ,插入一个Key.
2020-08-18 17:08:47 2844
原创 【GNU】《GNU Autoconf》基础----未消化
原文:https://www.jianshu.com/p/bbffda22fee8第二章 如何运行configure以及Makefile标准2.1 configuring讲解了./configure 命令的用法,列举了典型的命令参数如 '--prefix=prefix' 用来指定路径示例:./configure --prefix=/opt/gnu并不推荐在源代码的路径中运行configure,这样容易混乱,不便于再次配置源代码用于其他系统平台2.2cinfigure产生了哪些文件.
2020-08-18 01:41:01 331
原创 【中台】漫画:什么是中台?
摘自:https://blog.csdn.net/bjweimengshu/article/details/100978433推荐跳转看完整版在传统的前台-后台架构中,各个项目相对独立,许多项目都在重复发明同样的轮子,即让项目本身越来越臃肿,也让开发效率越来越低。这种时候,为提高开发效率,我们有必要整合出一个中间组织,为所有的项目提供一些公共资源。而这个中间组织,就是人们所说的“中台”。中台的领跑者SuperCell是一家芬兰的手机游戏...
2020-08-17 18:15:47 949
原创 【职业】什么是架构师?
什么是架构师?架构师英文architect,这个词源于建筑学。软件工程当中的架构师和建筑工程当中建筑师有许多相通之处,都是负责“产品”宏观的架构设计。在一个团队里,架构师充当了技术Leader的角色,不仅要完成项目的整体设计和规划,还要带领技术团队一起解决实际问题,攻克技术难点,使得软件的设计、开发、测试、发布流程得以顺利完成。下面这张图,表达了一个应用架构师(技术Leader)在团队当中的角色:需要注意的是,这张图中的架构师只是应用架构师...
2020-08-17 17:22:56 5860
原创 【分布式】什么是服务熔断?什么是服务降级?
一、什么是服务熔断?动漫形象解释:https://blog.csdn.net/bjweimengshu/article/details/79441695(考试遇到难题试试几次,不会就放弃【熔断】先) 在互联网系统中,当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用。 这种牺牲局部,保全整体的措施就叫做熔断。 如果不采取熔断措施,我们的系统会怎样呢? 我们来看一个栗子。当前系统中有A,B,C三...
2020-08-17 17:21:28 1355
原创 【DPDK】DPDK(数据层开发套件)简介--编辑中
1. DPDK介绍1) 简介DPDK全称Intel Data Plane Development Kit,是intel提供的数据层开发套件工具集,是Intel 处理器架构下用户空间高效的数据包处理的库函数和驱动。通俗地说,就是包数据处理加速的软件库。DPDK不同于Linux系统以通用性设计为目的,而是专注于高性能的处理网络应用中的数据包。具体体现在DPDK程序是运行在用户空间上收发数据包,绕过了Linux内核协议栈对数据包处理过程。相比原生 Linux(Native Linux),采用.
2020-08-15 03:11:26 1422
原创 【内存】内存分配和内存池 性能优化
C++几种内存分配方法的效率测试与比较这几天做的一个项目要频繁new许多对象,对于频繁调用new对效率的影响只停留在理论上,没有一个直观的认识,故做了一个小测试。本次测试只对比了三种内存分配方式:1. 频繁调用new2. 一次性new足够的内存,再用placement new产生对象到已分配的内存3. 用vector测试代码如下(注意事项:vs下x86和x64、debug、release配置下运行效果不一样,gcc编译时,一些二外的debug编译参数也会影响速度)#includ
2020-08-13 19:12:09 1202
原创 【软件质量】用profile 工具查找软件性能瓶颈|性能
各种profiler工具一、GUN Gropf Gprof是GNU profiler工具。可以显示程序运行的“flatprofile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括 函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。关于Gprof的 使用以及实现原理网上已有多篇文章提及,本文就不再详述,只是对其进行梳理和总结,方便阅读。(Gprof的官方网 址:http:...
2020-08-13 01:13:01 1391
原创 【网络攻击】慢速连接攻击和处理方式
慢速连接攻击和处理方式慢速攻击原理: http慢速攻击是利用http合法机制,在建立连接后,尽量长时间保持连接,不释放,达到对HTTP服务攻击,攻击者发送POST请求,自行构造报文向服务器提交数据,将报文长度设置一个很大的值,且在随后每次发送中,每次只发送一个很小的报文,这样导致服务器一直等待数据,连接始终一直被占用。如果攻击者使用多线程或傀儡机子去做同样操作,服务器WEB容器很快就被占满TCP连接而不再接受新请求slowhttptest是一款对服务器进行慢攻击的测试软件,包含了...
2020-08-12 01:23:19 949
原创 【HAProxy】HAProxy原理和基本概念|负载均衡
前置知识OSI网络七层模型(OSI(开放系统互联(Open System Interconnection)一、基础介绍 https://www.haproxy.org/ (官方网站) https://www.haproxy.org/download/1.8/src/haproxy-1.8.14.tar.gz(下载地址) http://cbonte.github.io/haproxy-dconv/1.8/configuration.html(文...
2020-08-11 15:24:32 937
原创 【高并发】单机,Epoll最多可以多少并发,linux最多可以多少并发?
4G内存的情况:按照题主的意思 是根据内存去算一个最大并发的连接数. 那么首先要找出来单个连接消耗内存的地方.第一个首先是socket buffer. read 和write 分别有一个, 默认大小在代码如下:/proc/sys/net/ipv4/tcp_rmem (for read)/proc/sys/net/ipv4/tcp_wmem (for write)默认大小都是87K和16K, 最低是4K和4K, 最高是2M,2M, 实际使用默认值最低也要保留8K,8K.然后是逻辑
2020-08-11 11:59:16 1501
原创 【分布式】分布式研究
原文:https://zhuanlan.zhihu.com/p/157978714 分布式id生成策略 生成分布式Id的方法主要有以下几种:数据库水平拆分,设置初始值和相同的自增步长。 批量申请自增ID。 UUID生成。 Redis的方式。 雪花算法。 百度UidGenerator算法 美团Leaf算法 数据库水平拆分,设置初始值和相同的自增步长 「数据库水平拆分,设置初始值和相同的自增步长」 set @@auto_increme...
2020-08-11 01:41:55 351 1
原创 【Golang】Go实战--实现简单的restful api(The way to go)
原文:https://blog.csdn.net/wangshubo1989/article/details/71128972生命不止,继续 go go go !!!介绍过net/http package:http://blog.csdn.net/wangshubo1989/article/details/70147079介绍过实现一个简单的tcp服务端/客户端:http://blog.csdn.net/wangshubo1989/article/details/70147079介绍过如何实
2020-08-06 02:53:06 2938
原创 【GraphQL】GraphQL学习笔记 -------未完成
原文:https://zhuanlan.zhihu.com/p/109424841什么是API?如果问上学的时候的我,我会说API就是Application programming interface,这个时候HR就会不懂装懂地点点头然后让我进入下一轮面试。如果问刚刚工作的我,我会说API就是接口嘛!PM灵光一现想出了一个新功能,我花几天时间写一个API,把这个功能体现出来,前端做网页做APP的人可以用。比如雅虎,有提供今天的天气的API,查阅新闻的API,看体育比分的API。现代社会衣食住
2020-08-06 01:46:52 422
原创 【Golang】Go的GOROOT,GOPATH,GOBIN和工程project目录结构
使用go env 命令,可以打印出Go的配置GOROOT其实就是golang 的安装路径当你安装好golang之后其实这个就已经有了GOPATHgo命令依赖的一个重要环境变量:$GOPATH其实可以把这个目录理解为工作目录,我个人定义的目录是:GOPATH="/Users/zhaofan/go_project"当然这个目录是需要添加到环境变量中的vim /etc/profile(根据实际路径修改下面的语句)添加在/etc/profile 之后export GOROO
2020-08-05 22:28:28 695
原创 【数据库】clickhouse 列数据库学习记录
linux安装:https://clickhouse.tech/#quick-startsudo yum install yum-utilssudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPGsudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/clickhouse.reposudo yum install clickhouse-se
2020-08-03 21:17:09 664
MobaXterm、WindTerm、xshell、finalshell、soureCRT快捷指令工具cxtool-4.1.5
2024-09-07
MobaXterm、WindTerm、xshell、finalshell、soureCRT快捷指令工具cxtool-4.0.0
2024-08-28
MobaXterm、WindTerm、xshell、finalshell、soureCRT快捷指令工具cxtool-3.8.0
2024-08-14
MobaXterm、WindTerm、xshell、finalshell、soureCRT快捷指令工具cxtool-3.2.5
2024-07-18
cxtool-3.2.2快捷指令工具-MobaXterm、WindTerm、xshell伴侣
2024-07-03
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
基于可靠连接和高效资源共享的可扩展 RDMA RPC
2022-02-12
连接服务器失败(错误原因:Connection refused) error 111 抓包结果
2022-01-25
删除文件只保留最新的n个文件的shell脚本
2021-09-08
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关注的人