自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (8)
  • 收藏
  • 关注

原创 训练过程中生成日志

对于python,既可以使用logging库,比较方便;同时,另一种简单粗暴的方式,直接将终端输出内容重定向比如,python train.py > log.txt一个→直接将终端输出定向到当前目录下的log.txt文件中,没有文件则创建,有文件则覆盖。python train.py >> log.txt这种方式则会在有log.txt时将内容追加到log.txt中那么,既想在终端显示内容又将内容定向到日志文件,可以使用tee命令python train

2020-10-15 14:38:02 1198

原创 解决linux下载缓慢,除了换源还可以自行设置下载时间

最近安装了一个新的conda虚拟环境,但是换源之后下载还是龟速,想着能不能设置自动执行,结果发现通过crondtab命令可以设置脚本自动执行。具体的,需要按照开源代码安装相应的环境,需要执行pip install -r requirements.txt于是写个脚本:#!/bin/bashsource activate wuyu_paper_envpip install -r /data/wy/projects/UAV/PaperCode/yolov3/requirements.txt

2020-10-14 20:06:06 892

转载 订单中心,如何做到数据库无限容量

数据库水平切分是一个很有意思的话题,不同业务类型,数据库水平切分的方法不同。本篇将以“订单中心”为例,介绍“多key”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践。一、什么是“多key”类业务所谓的“多key”,是指一条元数据中,有多个属性上存在前台在线查询需求。订单中心业务分析订单中心是一个非常常见的“多key”业务,主要提供订单的查询与修改的服务,其核心元数据为:Order(oid, buyer_uid, seller_uid,...

2020-08-24 16:00:30 471

转载 好友中心,数据库架构优化与实践

本文将以“好友中心”为例,介绍“多对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践。一、什么是多对多关系所谓的“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体之间的关联关系,一个学生可以选修多个课程,一个课程可以被多个学生选修,这里学生与课程时间的关系,就是多对多关系。二、好友中心业务分析好友关系主要分为两类,弱好友关系与强好友关系,两类都有典型的互联网产品应用。弱好友关系的建立,不需要双方彼此同意: 用户A关...

2020-08-24 15:59:21 310

转载 帖子中心,数据库架构优化与实践之三(转载)

本文将以“帖子中心”为例,介绍“1对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及实践 一、什么是1对多关系所谓的“1对1”,“1对多”,“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体之间的映射关系。1对1 一个用户只有一个登录名,一个登录名只对应一个用户 一个uid对应一个login_name,一个login_name只..

2020-08-24 15:58:10 233

转载 单KEY业务,数据库水平切分架构实践之二(转载)

原文链接:https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651960212&idx=1&sn=ab4c52ab0309f7380f7e0207fa357128&chksm=bd2d06488a5a8f5e3b7c9de0cc5936818bd9a6ed4058679ae8d819175e0693c6fbd9cdea0c87&scene=21#wechat_redirect本文将以“用户中心”为例,介绍

2020-08-24 15:56:51 185

转载 无限容量数据库架构设计之一(转载)

原文链接:https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651960158&idx=1&sn=019e9dca6e074f62478b2562044cf8de&chksm=bd2d06828a5a8f945e1e6c2aa4702f48b7857ac9a79acf867496f25b28c86e2f28bed19b38e4&scene=21#wechat_redirect本文,将介绍数据库架构设计中的一

2020-08-24 15:53:34 309

转载 Zookeeper和redis中的分布式锁

zookeeper可靠性比redis强太多,只是效率低了点,如果并发量不是特别大,追求可靠性,首选zookeeper。为了效率,则首选redis实现。redis分布式锁,其实需要自己不断去尝试获取锁,比较消耗性能zk分布式锁,获取不到锁,注册个监听器即可,不需要不断主动尝试获取锁,性能开销较小;另外一点就是,如果是redis获取锁的那个客户端bug了或者挂了,那么只能等待超时时间之后才能释放锁;而zk的话,因为创建的是临时znode,只要客户端挂了,znode就没了,此时就自动释放锁。(https://

2020-08-22 09:44:56 191

原创 redis源码阅读之server.h

打开redis源码后,发现server.h有一个简要的模块介绍,于是决定从这一块开始阅读。功能介绍这部分简要的说明了其他模块的功能:#include "ae.h" /* Event driven programming library */#include "sds.h" /* Dynamic safe strings */#include "dict.h" /* Hash tables */#include "adlist.h" /* Linked lists */

2020-08-18 19:48:58 558

转载 高可用高可靠系统如何设计以及有哪些要点?

其实所谓的高并发,如果你要理解这个问题呢,其实就得从高并发的根源出发,为啥会有高并发?为啥高并发就很牛逼?我说的浅显一点,很简单,就是因为刚开始系统都是连接数据库的,但是要知道数据库支撑到每秒并发两三千的时候,基本就快完了。所以才有说,很多公司,刚开始干的时候,技术比较 low,结果业务发展太快,有的时候系统扛不住压力就挂了。当然会挂了,凭什么不挂?你数据库如果瞬间承载每秒 5000/8000,甚至上万的并发,一定会宕机,因为比如 mysql 就压根儿扛不住这么高的并发量。所以为啥高并发牛逼?就是因为

2020-08-11 15:25:31 882

转载 Linux服务器性能不佳排查方法

转载自: https://zhuanlan.zhihu.com/p/59547570常见工作中,计算机系统的资源主要包括CPU,内存,磁盘I/O以及网络,过度使用这些资源将使系统陷入困境。当上述服务器系统资源中的任何一个遭遇瓶颈,都会带来服务器性能的下降,典型的症状就是系统运行迟缓。1.CPU查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数:可运行:运行态,占用CPU,或就绪态,等待CPU调度。不可打扰:阻塞,正在等待I/OCPU诊断常用

2020-08-11 14:40:12 914

原创 C++20支持协程了,快来学学协程

golang作为一种后台开发语言,可以直接支持协程且语法更为简单,C++20的特性也使得C++变得更为简单和强大。下面就来谈谈协程多线程模型中内核实现线程与线程之间的调度,通常一个线程是无法从头到尾占用着 cpu 的,尤其是进行 i/o 操作时,许多的系统调用都是阻塞的,此时内核保存该线程的上下文,然后挂起该线程。当然更多时候是由于该线程的本次运行时间耗尽,只得被挂起等待 cpu 的下一次临幸。但是多线程存在两个问题,在线程数量过多时,问题被放大的尤为明显线程的上下文切换造成的开销。线程之间对资源

2020-08-11 10:53:34 3567 1

原创 C++ STL库中的multimap和unordered_multimap

首先,map和unordered_map中在插入时一个key只能对应一个value,map的底层实现是红黑树,且key顺序是有序的,unordered_map的底层实现是hash。简单试一下map: map<int, int> oMp; oMp[1] = 112; oMp[3] = 2; oMp[2] = 22; oMp[5] = 12; oMp[2] = 11; for (auto e : oMp) { cout << "key: "<< e.fir

2020-08-08 20:29:14 1409

原创 什么是阻塞/非阻塞和同步/异步

作者:萧萧链接:https://www.zhihu.com/question/19732473/answer/241673170来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。IO 概念区分四个相关概念:同步(Synchronous)异步( Asynchronous)阻塞( Blocking )非阻塞( Nonblocking)这四个概念的含义以及相互之间的区别与联系,并不如很多网络博客所写的那么简单, 通过举一些什么商店购物, 买书买报的例子就能讲清楚。进程间通信的同

2020-08-07 14:25:24 726

转载 epoll详解

https://zhuanlan.zhihu.com/p/63179839

2020-08-06 14:24:41 339

原创 分布式系统中的一致性hash

转载来源:https://zhuanlan.zhihu.com/p/92742908通过本文将了解到以下内容:分布式系统的概念和作用 分布式系统常用负责均衡策略 普通哈希取模策略优缺点 一致性哈希算法的定义和思想 一致性哈希的基本过程 Redis集群中一致性哈希的实现1.分布式系统的基本概念分布式系统与高并发高可用当今高并发和海量数据处理等场景越来越多,实现服务应用的高可用、易扩展、短延时等成为必然。在此情况下分布式系统应运而生,互联网的场景无外乎存储和计算,因此分布式系统可以简.

2020-08-05 14:50:52 352

原创 学学HTTP2.0的特性

引言秋招来临,在面试过程中不仅会问到前端知识、算法问题,网络相关的内容也会多少涉及,被问的最多的就是“你了解HTTP2.0吗?”由于这个问题并不能很完美的回答出来,因此特地查阅了相关资料、博客,最终整理出一份通俗易懂的HTTP2.0入门文章,也算是学习笔记,希望能给看到该文章的你带来一些收获。什么是HTTP2.0想要了解一个事物,首先就要知道它是什么。简单来说,HTTP/2(超文本传输协议第2版,最初命名为HTTP2.0),是HTTP协议的第二个主要版本。HTTP/2是HTTP协议自1999年HTT

2020-08-05 14:46:46 660

原创 顺时针打印矩阵——状态机封装法

最近面试字节跳动时,面试官给了这个题{ {1, 2, 3, 4},{5, 6 ,7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}, {17, 18, 19, 20} };虽然去年做过类似的题,但是需要申请一份空间用于记录矩阵是否被打印,这种思路被面试官直接否定,让我不许开辟空间。由于需要不断判断当前打印值的位置,逻辑上比较麻烦,但是没做出来。后来挂了,自己再考虑这个题时,觉得可以用状态机来解决这一类比较复杂的问题。结合状态机的封装,找到了一中空间复杂度为O(1)的做法,时间复

2020-06-26 10:32:08 211

原创 交叉锁死锁

#include <iostream>#include <thread>#include <mutex>#ifdef _WIN32#include <windows.h>#elif defined(UNIX)#include <unistd.h>#endifusing namespace std;int d = 2;mutex mt1, mt2;void a2() { mt2.lock(); cout <

2020-06-25 11:55:49 498

原创 压缩算法-腾讯笔试 用递归的方式代替入栈和出栈

小Q想要给他的朋友发送一个神秘字符串,但是他发现字符串的过于长了,于是小Q发明了一种压缩算法对字符串中重复的部分进行了压缩,对于字符串中连续的m个相同字符串S将会压缩为m|S,例如字符串ABCABCABC将会被压缩为[3|ABC],现在小Q的同学收到了小Q发送过来的字符串,你能帮助他进行解压缩么?输入描述:输入第一行包含一个字符串s,代表压缩后的字符串。S的长度<=1000;S仅包含大写字母、[、]、|;解压后的字符串长度不超过100000;压缩递归层数不超过10层;输出描述:输出一个

2020-06-18 16:22:16 216

转载 十大排序算法C++实现

内容转自:https://blog.csdn.net/weixin_41190227/article/details/86600821,采用C++实现。0、排序算法说明0.1 排序的定义对一序列对象根据某个关键字进行排序。0.2 术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序...

2020-06-14 08:57:52 312

原创 大疆M210 V2+妙算2-G+LIVOX MID-40使用记录

大疆M210 V2+妙算2-G+LIVOX MID-40使用记录本文总结上述设备在使用过程中遇到过的问题,主要记录除了产品说明书未说明的部分。1.1妙算2-G供电问题这个由于工作人员在交货的时候也不清楚如何供电,经过与客服一天的交流,M210V2要使用外部供电需要在遥控器的APP中扩展I/O选项中开启对外供电功能。1.2PCL库安装首先查阅了PCL的getstart,阅读了PCL论文。有两点个人觉得比较重要:文中明确提到所有数学计算依赖eigen库,可视化部分依赖于VTK库先查阅了一下博客,考

2020-06-14 08:56:49 1350

原创 ubuntu搭建PCL和liblas过程中遇到的一些问题汇总

装这两个库真的是要吐了, 本文不教装环境,仅仅记录本人在装环境过程中出现的关键问题liblas和PCL的安装就不多说了,网上教程一大堆,最重要的要了解有什么依赖库再动手,比如说boost,eigen,VTK,numpy,cmake等等一大堆,先装依赖库,装好了之后再去编译源码,关于PCL库没啥好说的,就是依赖库装好按着流程来就行了。在编译liblas的过程中存在着比较致命的问题,我从github上面下载的源码,你可能存在的问题主要有以下两个,其他的我认为都是依赖库没装好的原因,每次出错要认真阅读错误并分

2020-06-13 15:28:59 3192

转载 求最长回文子串

字符处理编程笔记一1.最长回文子串1.最长回文子串题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。123示例 2:输入: "cbbd"输出: "bb"12解法一:暴力解法1.两重循环遍历所有子串;2.判断回文子串。时间复杂度:O(n3) O(n^3)O(n3)#include <iostream>#in..

2020-06-12 18:52:41 176

原创 解决cmake Policy CMP0057 is not set: Support new IN_LIST if() operator

解决思路:通过阅读下面的出错信息,我认为这主要是由于cmake版本变更出现了一些新的操作符的引入和旧的操作符的删除,从而引起的版本不兼容,我在安装boost库时,由于boost库是一个较老的库,而我的cmake是最新版本,因此需要使得我的cmake能够向下兼容。注意下面是IN_LIST操作符出错– Setting libLAS build type - Release– Searching for Boost 1.38+ - doneCMake Warning (dev) at /usr/local

2020-06-11 11:03:16 9821 4

原创 LeetCode动态规划递归调用解法记录

题目描述:给定一个字符串s和一组单词dict,在s中添加空格将s变成一个句子,使得句子中的每一个单词都是dict中的单词返回所有可能的结果例如:给定的字符串s="catsanddog",dict=["cat", "cats", "and", "sand", "dog"].返回的结果为["cats and dog", "cat sand dog"].#includ...

2020-03-10 15:25:12 181

原创 进程间通信

转自传智播客黑马程序IPC方法Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communicatio...

2020-02-13 10:55:06 235

原创 二叉树的递归遍历与迭代遍历

题目描述求给定的二叉树的后序遍历。例如:给定的二叉树为{1,#,2,3}, 1↵ ↵ 2↵ /↵ 3↵返回[3,2,1].备注;用递归来解这道题太没有新意了,可以给出迭代的解法么?Given a binary tree, return thepostordertraversal of its nodes' values.For...

2020-02-07 10:58:02 363

原创 二叉树的递归遍历

/*** Definition for binary tree* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*///实现二叉树的递归遍历...

2020-02-06 10:59:30 104

原创 计算逆波兰式(后缀表达式)的值——栈的使用

s.empty(); //如果栈为空则返回true, 否则返回false;s.size(); //返回栈中元素的个数s.top(); //返回栈顶元素, 但不删除该元素s.pop(); //弹出栈顶元素, 但不返回其值s.push(); //将元素压入栈顶题目描述计算逆波兰式(后缀表达式)的...

2020-02-01 10:43:49 787

原创 LeetCode求给定二叉树的最小深度讨论总结

题目描述求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest le...

2020-01-31 20:33:37 580

原创 15 大话设计模式C++实现之抽象工厂模式

/*抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类*//*实例:不同客户的数据库管理采用不同的数据库完成,不同的数据库在语法上存在差异,因此需要解除用户和具体数据库之间的耦合(即业务逻辑与数据访问的解耦),避免向不同类型的客户提供支持时的代码复用*/#include<iostream>#include<string&gt...

2020-01-28 12:06:45 229

原创 14 大话设计模式C++实现之观察者模式

/*观察者模式(又叫发布-订阅模式)定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时会通知所有的观察者对象*//*例子:有员工在上班时间看电影、NBA、股票等与工作无关的内容,前台可以给员工发送通知,因此所有的员工通过监听受监测对象即可对自身的工作做出调整同样的,老板也需要通知一些业务内容,因此例子主要让在干不同事的员工监听前台类和...

2020-01-09 15:45:26 178

原创 linux关闭进程

显示→查找→关闭

2020-01-04 10:34:06 171

原创 VIM手册

================================================================================ 欢 迎 阅 读 《 V I M 教 程 》 —— 版本 1.7 ===================================================...

2019-12-24 19:28:49 400

转载 C++ List使用

转载网址:https://blog.csdn.net/xiaoquantouer/article/details/70339869头文件#include<list>声明一个int型的list:list<int> a;1、list的构造函数list<int>a{1,2,3}list<int>a(n) //声明一个n个元...

2019-12-20 18:33:09 199

原创 13 大话设计模式C++实现之建造者模式

例子说明1:炒菜没放盐和肯德基的标准化例子说明2:画一个不同形态的小人(高矮胖瘦各不同)/*建造者模式(生成器模式):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式可以将一个产品的内部表象与产品的生成过程分隔开来,从而可以使一个建造过程生成具有不同的内部表象的产品。如果我们使用了建造者模式,那么用户就只需要指定需要建造的类型就可以得到他们,...

2019-12-19 19:54:51 129

原创 12 大话设计模式C++实现之外观模式

/*外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这一接口使得这一子系统更加容易使用其中外观类需要了解所有子系统的方法或属性,对它进行组合,以备外界调用。何时使用外观模式:首先,在设计阶段初期,应该有意识的将不同的两个层分离,比如经典的三层架构,就需要考虑在数据访问层、业务逻辑层和表示层的层与层之间建立Facade,这样可以为系统提供一个简单的接口,使...

2019-12-19 19:48:45 149

原创 迪米特原则

/*迪米特原则(强调类之间的松耦合)如果两个类不必彼此通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的方法的话,就可以通过第三者转发这个调用。迪米特法则首先强调的前提是在类的结构设计上,每一个类都应当尽量降低成员的访问权限,也就是说一个类包装好自己的private状态,不需要让别的类知道的字段或行为就不要公开。类之间的耦合越弱,越有利于复用,一个处在弱耦合的类...

2019-12-19 19:12:45 130

原创 10 大话设计模式C++实现之模板方法模式

/*模板方法模式是实现一个模板父类,父类实现所有重复的代码让子类可以修改父类维持的元素或者函数,子类可以利用多态、根据需要重写父类*/#include <iostream>#include <string>using namespace std;typedef string(*PFUNC) ();class TemplateClass{public:...

2019-12-19 19:00:29 111

day06(进程间通信).rar

linux进程间通信代码部分,Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。

2020-02-13

mtan-master.zip

作为博客https://editor.csdn.net/md/?articleId=103563189中提到的论文代码

2019-12-16

OpenSim4.0_x64.rar

我主要用该软件用于人体手臂的逆运动学问题求解和建模,去官网下载,但是一直打不开下载的页面,因此最终获取到了安装包,于是分享出来

2019-06-04

VMD实现函数

变分模态分解函数,将一个信号分解成多个不同频段的信号,设置好参数即可将已有的信号分解。内置各参数的说明如1x1024,分解之后即得到5x1024的矩阵。每一行对应一个信号分量

2018-12-09

时频分析工具箱

里面包含了一些经典的时频处理函数,比如短时傅里叶变换、wigner—valle及其改进型等时频处理函数。每个函数里面有具体的使用方法。根据要处理的信号设置相应的参数对其进行调用即可

2018-12-09

c语言实现学生管理系统

利用c语言实现了一个学生管理系统,能够完成学生数据管理系统的常用功能

2018-08-08

静态背景中的运动目标检测识别跟踪

运算速度尚可,win10的64位系统,vs2015+opencv3.4,直接可运行,只需要改变视频读入的路径即可

2018-05-03

运动车辆的检测跟踪系统

1.首先从文件菜单打开程序目录下的car.avi视频,系统将显示视频的第一帧。 2.点击背景提取菜单,稍后会提取出背景并显示在打开的第二个窗口中。 3.当提取出背景后,点击检测跟踪菜单,对车辆进行检测和跟踪。 4.点击轨迹绘制菜单,绘制车辆的轨迹。

2018-04-03

空空如也

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

TA关注的人

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