自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 nvcc 编译并行程序时报错gcc: error trying to exec ‘cc1plus‘: execvp: 没有那个文件或目录

NVCC编译并行计算程序是报错的解决方法

2023-01-18 10:59:52 3228 1

原创 RuntimeError: mat1 dim 1 must match mat2 dim 0以及local variable ‘beta1‘ referenced before assignment

报错RuntimeError: mat1 dim 1 must match mat2 dim 0的解决办法报错local variable ‘beta1‘ referenced before assignment的解决办法

2022-09-22 16:10:48 826

原创 C++ 强制类型转换(const_cast/reinterpret_cast)使用详解

一、const_cast用法const_cast < new-type > ( expression );用于转换指针或引用,可以去掉类型的const属性。在c++参考文档网站上(const_cast conversion - cppreference.com)有这么一个例子:#include <iostream>struct type{ int i; type(): i(3) {} void f(int v) const

2022-05-18 16:43:08 2655 2

原创 C++设计模式背诵版

C++设计模式背诵版

2022-05-12 12:33:02 402

翻译 高性能服务器中的C10K问题

是时候让 Web 服务器同时处理一万个客户端了,你不觉得吗?毕竟,网络现在是一个很大的地方。计算的瘦客户端模式似乎又回来了——这次是服务器在互联网上,为成千上万的客户端提供服务。考虑到这一点,这里有一些关于如何配置操作系统和编写代码以支持数千个客户端的说明。讨论集中在类 Unix 操作系统上,因为这是我个人感兴趣的领域,但也涵盖了一些 Windows。

2022-01-19 17:08:01 287

翻译 设计高性能服务器的关键点

本文的目的是分享我多年来关于如何开发某种应用程序的一些想法,对于这种应用程序,术语“server”只是一个模糊的近似。更准确地说,我将编写一类广泛的程序,它们被设计用来处理每秒大量的离散消息或请求。网络服务器通常符合这个定义,但并不是所有的程序都是真正的服务器。但是,为了简单起见,而且因为“High-Performance Request-Handling Programs”是一个非常糟糕的标题,所以我们只说“服务器”就可以了。

2022-01-19 09:11:34 185

原创 【初级04】JVM线程模型

1. JVM线程模型JVM内部线程主要分为以下几种:VM线程:单例的VMThread对象,负责执行VM操作 定时任务线程:单例的WatcherThread对象,模拟在VM中执行定时操作的计时器中断 GC线程:垃圾收集器中,用于支持并行和并发垃圾回收的线程 编译器线程:将字节码编译为本地机器代码 信号分发线程: 等待进程指示的信号,并将其分配给Java级别的信号处理方法安全点(safe point)方法代码中被植入的安全点检测入口 线程处于安全点状态:线程暂停执行,这时候线程栈

2022-01-10 10:01:02 290

原创 【初级05】

服务器通信原理1.写一个简单的http服务器分别使用单线程处理(socket,串行处理)、多线程处理(并行处理)、使用大小的线程池处理(比如使用40个线程)。2.五种IO模型(1)阻塞式IO(2)非阻塞式IO(3)IO复用(4)信号驱动IO(用的比较少,但事件驱动的模式用的比较多)(线程池->EDA事件驱动的架构->SEDA分阶段的事件驱动架构)多线程方式及其性能曲线...

2022-01-10 10:00:07 147

原创 解决“Pip - Fatal error in launcher: Unable to create process using... ”

1.查一下pip是否存在mac中执行 python3 -m pip --versionwindows中执行 py -m ensurepip --default-pip2.如果1中运行的命令有结果,将路径中的pip删除3.重新安装pipmac :python3 -m pip install --upgrade pip setuptools wheelwindows:py -m pip install --upgrade pip setuptools wheel..

2022-01-06 10:50:48 1378

原创 【初级03】java JVM核心技术(3): jvm调优

本文使用的JDK版本:$ java -versionjava version "1.8.0_261"Java(TM) SE Runtime Environment (build 1.8.0_261-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)1.代码文件 GCLogAnalysis.javaimport java.util.Random;import java.util.concurr

2021-12-24 09:23:56 343 1

原创 【初级02】java JVM核心技术(2)开发工具和GC策略

1.JVM命令行工具1.1命令使用1.1.1jps -lmv查看详细信息1.1.2jinfo [PID]1.1.3 jstat -gc pid 1000 10001.1.4 jstat -gcutil pid 1000 1000有时可以捕捉到GC时eden区被情况的情况1.1.5 jmap命令-heap 打印堆内存(或内存池)的配置和使用信息-histo 看哪些类占用的空间最多,以直方图展示-dum...

2021-12-22 14:15:31 7307

原创 【初级01】java JVM核心技术(1):字节码、类加载器、GC机制

1.编程语言概述编程语言有不同的分类方法:面向过程、面向对象、面向函数 静态类型、动态类型 编译执行、解释执行 有虚拟机、无虚拟机 有GC、无GCJava语言是一种面向对象、静态类型、编译执行,有虚拟机、有垃圾回收器和运行时的跨平台高级语言。2.编程语言的跨平台性C++要想跨平台,只能是在源代码级别的,编写跨平台的代码,然后再到不同的平台上编译编译后运行;Java则能达到字节码级别的跨平台,java代码编译后,生成class文件,在不同的平台均可运行。我的另一篇Java..

2021-12-10 17:32:31 821

原创 【中级05】Java泛型、反射

java泛型简介Java泛型(Generic)是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。参考资料:Generics#TODO 未完...

2021-12-10 10:18:51 318

原创 【中级04】Java 虚拟机 Runtime Data Areas以及垃圾回收

运行时数据区存放的东西:程序计数器:线程私有的,记录的是当前线程字节码的行号java代码,执行jvm字节码指令的地址stack,私有的,存放局部变量、操作数栈、线程创建时有的本地方法栈,包括方法区(线程共享,)...

2021-12-02 18:25:29 780 2

原创 【中级03】class loader subsystem详解

类如何加载的呢?Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制类加载顺序:双亲委派...

2021-11-29 16:44:01 466

原创 【中级02】Java Class字节码文件底层逻辑详解

Java的class文件是什么Class文件是jvm认识的一种字节码文件,里面的地址都是逻辑的地址。最后需要运行在操作系统中,操作系统只能识别真实的物理地址。此时需要动态链接(这个过程就是将逻辑地址变成物理地址),就是在运行时动态地绑定对象、对象地址。此外,它还是一组以8位字节为基础单位的二进制流(容错性低,错一个字节则整个class文件不可用;节省空间\可以不用定义传输的格式,比如json,xml,而直接用二进制流传输数据),各个数据项目严格按照顺序紧凑地排列在Class文件中,中...

2021-11-29 14:37:58 481

原创 fatal: 无法访问 ‘x.git/‘gnutls_handshake() failed: The TLS connection was non-properly terminated.解决办法

我在服务器上克隆代码时报错:#git clone --recursive https://github.com/stevenlovegrove/Pangolin.git正克隆到 'Pangolin'...fatal: 无法访问 'https://github.com/stevenlovegrove/Pangolin.git/':gnutls_handshake() failed: The TLS connection was non-properly terminated.将链接htt..

2021-11-22 10:46:03 999

原创 [中级01]java为什么能跨平台,而C\C++语言不能跨平台

同样的C\C++源文件文件,经过不同的计算机硬件(x86平台、arm、AMD)、不同的操作系统(Linux\mac\windows etc.)上的编译器编译后,生成了不同的机器码,是互不通用的。而Java源码(.java)经过编译后,生成了class,通过不同平台上的JVM(Java 虚拟机)都可以解释执行。JVM掩盖了计算机硬件和操作系统的差异,对class提供了统一的执行接口,这就是java为啥能跨平台的原因。在面向对象设计原则中,有个原则叫“开闭原则”(O...

2021-11-18 17:10:36 2279

原创 H265编解码

知识概览1.H265压缩技术H265 的GOP示意图划分好宏块后,计算宏块的像素值以此类推,计算一副图像每个宏块的像素值,所有宏块都处理完后如下面的样子宏块编码无论是H264还是H265、VP8,都是以宏块为单位进行编码的,宏块编码也即网格编码。 每个宏块内只保留最左边和最上边的像素值,然后根据这些保留的像素值对宏块中没有保留的像素值进行预测,预测方向总共8个:如果想...

2021-11-10 16:45:28 3838

原创 H264编解码

H264帧内预测H264信源编码器内部流程H264解码器

2021-11-10 16:19:46 240

原创 常见音视频编码格式一览

2021-11-10 15:41:39 2456

原创 ffmpeg功能概览

1.与多媒体文件分析相关的常用工具:文件信息查看mediainfo封装格式:Elecard Format Analyer编解码数据:Elecard Stream Eye视频YUV player音频Adobe Audition协议查看数据和跨平台数据:Vlc 和ffplay2.YUV算法和原理横向为宽度纵向为高度Y(亮度)UV(颜色)设视频宽度为W,高度为HU = V = 1/2WY = U = V = 1/2H...

2021-11-09 10:54:54 97

原创 RTMP协议

一、RTMP(Real Messaging Protocol 实时消息传输协议)与HTTP协议一样,都是应用层协议OKHTTP封装了socket完成HTTP数据的收发,与之类似,LIBRTMP封装socket建立TCP通信,并实现了RTMP的收发。RTMP封装音视频数据流的格式跟FLV(ADOBE FLV协议文档)协议很类似,两者兼容,-----------------------------------------------------------...

2021-11-03 16:55:47 481

原创 服务器网络问题排查各种工具

一、nload工具centOS安装:yum install nload(ubuntu 安装 sudo apt install nload 后面其他命令安装的地方类似)项目地址:Paul Warren / iftop · GitLab使用方法:nload version 0.7.4Copyright (C) 2001 - 2012 by Roland Riegel <feedback@roland-riegel.de>nload comes with ABSOLUTELY NO

2021-11-01 11:16:47 287

原创 Python GStreamer Tutorial

#TODO

2021-10-29 16:51:49 439

原创 目标检测YOLO V5 C++版本

GitHub - DanaHan/Yolov5-in-Deepstream-5.0: Describe how to use yolov5 in Deepstream 5.0#TODO: 视频接入与deepstreamer使用:This Repos contains how to run yolov5 model in DeepStream 5.01.Geneate yolov5 engine modelWe can use https://github.com/wang-xinyu/t

2021-10-29 16:46:09 837

原创 ffmpeg七大库功能介绍——机翻、非人话

libavformat库为音频、视频和字幕流的多路复用和解复用(muxing和demuxing)提供了一个通用框架。它包含多个多媒体容器格式的多复用器和解复用器。它还支持几种输入和输出协议来访问媒体资源。libavutil库是一个辅助便携式多媒体编程的实用程序库。它包含安全的可移植字符串函数、随机数生成器、数据结构、额外的数学函数、密码学和多媒体相关功能(如像素和样本格式的枚举)。它不是libavcodec和libavformat所需要的代码库。libswscale库执行高度优化

2021-10-29 14:34:36 1407

转载 音频重采样造成音质损失的原理

转自:音频重采样造成音质损失的原理 - 程序员大本营1、WAV文件:采样率(Sample Rate),深度(bit-depth)WAV文件可以说是最原始的数字化音频格式了。Wav全称是Wave,就是将音频文件的波形完整记录。而波形的存在,可以想象为是折线图一般的东西。想记录波形,就需要两个最基本的参数:1、采样率,我们以怎样的频率记录波形的变化。44.1KHz,意味着每秒选取44100个采样点;48KHz意味着每秒选取48000个采样点。出于历史原因,所有CD一律采用44.1KHz,而DVD

2021-10-29 11:04:07 780

转载 音视频解码流程

下图转自掘金社区:音视频 FFmpeg解码详解转自:音视频 FFmpeg解码详解 - 知乎视频解码知识纯净的视频解码流程压缩编码数据->像素数据。 例如解码H.264,就是“H.264码流->YUV”。一般的视频解码流程视频码流一般存储在一定的封装格式(例如MP4、AVI等)中。封装格式中通常还包含音频码流等内容。 对于封装格式中的视频,需要先从封装格式中提取中视频码流,然后再进行解码。 例如解码MKV格式的视频文件,就是“MKV->H.26..

2021-10-29 10:21:07 505

原创 RGB与YUV的转换

计算机领域,RGB被称为基色分量,组合后能显示的颜色叫做颜色空间,一般取值范围从0-255(2^8,可以显示1600万多种颜色;现在有的显示器为10位位深,即2^10,约可以显示10亿种颜色)还有一种显示方法即YUV显示法:只黑白显示时,则只需要拿到Y值就可以了,彩色显示时则需要拿到YUV三个值。RGB模式中的305911公式,即YUV灰度转换公式(这个公式的转换是不可逆的,RGB转成灰度图后,无法再逆推出RGB彩图):RGB与YUV互转的公式:----...

2021-10-27 18:55:21 9287

原创 H264码流格式分析

H264码流分析H264文件数据分析ffplay 播放视频:一个视频文件里的容器,有可能有多道视频、多道音频,可以加参数切换ffplay -i xx.mp4 -vst 1(-vst 即为切换第二道视频)为什么要编码:摄像头采集的视频,假设每秒25张图片,每张图片1920*1080像素,显示位深为32位(8位透明度,RGB各8位),则一秒的数据量有1920*1080*32*25≈197MB,这么大的数据量显然不利于视频的传输,于是就要对视...

2021-10-27 18:02:54 390

转载 8位深, 16位深,24位深,32位深图片显示原理及对比

我们都知道一张图片可以保存为很多种不同的格式,比如bmp/png/jpeg/gif等等。这个是从文件格式的角度看,我们抛开文件格式,看图片本身,我们可以分为8位, 16位, 24位, 32位等。 单击右键,属性->详细信息即可查看图片位深度:8位: 2^8 = 2^2(B) 2^3(G) 2^3(R) = 256 (256色) 可以总共显示256种颜色16位:2^16 = 2^5(B) 2^6(G) 2^5(R) = 65536 可以总共显示65536种颜...

2021-10-27 16:55:31 21162

转载 python GIL 全局解释器锁详解

Python多线程另一个很重要的话题——GIL(Global Interpreter Lock,即全局解释器锁)鲜有人知,甚至连很多Python老司机都觉得GIL就是一个谜一、一个不解之谜耳听为虚,眼见为实。不妨看一个例子感受下GIL为什么会让人不明所以下面这段很简单的cpu-bound代码:def CountDown(n): while n > 0: n -= 1现在,假设一个很大的数字n = 100000000,试试单线程的情况下执行CountDo...

2021-10-26 15:31:02 203

原创 线程池类封装

my_thread_pool.h//// Created by ACE on 2021/10/20.//#ifndef CPPTEST_MY_THREAD_POOL_H#define CPPTEST_MY_THREAD_POOL_H#include <pthread.h>struct my_task { struct my_task *pNext; int value;};struct my_thread_info { //线程退出标志 .

2021-10-21 09:48:28 129

转载 pytorch多gpu并行训练

pytorch多gpu并行训练link-web转自:pytorch多gpu并行训练 - 知乎目录(目录不可点击)说明 1.和DataParallel的区别 2.如何启动程序的时候 2.1 单机多卡 2.2 多机多卡 2.3 代码里面的修改 2.4 简单的伪代码示例: 3.batch size的设置 pytorch多gpu并行训练 1.单机多卡并行训练 1.1.torch.nn.DataParallel 1.2.如何平衡DataPara

2021-10-19 17:40:48 1495

原创 fastdfs 报错 err: TrackerTask RecvHeader recv resp status 28 != 0

fastdfs 容器中报错:TrackerTask RecvHeader recv resp status 28 != 0这个错误号代表存储服务器中存储空间不足 。进入到容器中编辑fastdfs配置文件:sh-4.2# vi /etc/fdfs/tracker.confreserved_storage_ance:space = 10%解决办法:把预留空间调小,或者扩容。...

2021-10-18 17:54:39 433

原创 查看linux 系统中 opencv版本

查看linux 系统中 opencv版本,执行命令:root@GPU:/home/test# pkg-config --modversion opencv3.2.0如果大概知道自己系统里面安装的是opencv4,可以用以下命令查看具体是哪个版本# pkg-config --modversion opencv44.2.0...

2021-10-18 11:30:22 1762

转载 如何在Ubuntu 18.04上安装OpenCV

本教程介绍了如何在Ubuntu 18.04上安装OpenCV。OpenCV(开源计算机视觉库)是一个开源计算机视觉库,具有C ++,Python和Java的绑定。它的用途非常广泛,包括医学图像分析,拼接街景图像,监视视频,检测和识别人脸,跟踪运动对象,提取3D模型等等。OpenCV可以利用多核处理功能,并具有GPU加速功能以进行实时操作。我们将向您展示两种在Ubuntu上安装OpenCV的不同方法。选择最适合您的安装选项之一。从Ubuntu存储库安装OpenCV可从Ubuntu...

2021-10-15 20:50:25 3566

原创 java JDK 8 官网下载网址/清华镜像/华为镜像

1.官网下载java 1.8地址(需要注册一个oracle账户):Java Downloads | Oracle2. 清华镜像下载Index of /AdoptOpenJDK/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror3.华为镜像下载https://repo.huaweicloud.com/java/jdk/...

2021-10-13 23:08:51 178043 2

转载 应用架构设计

架构可细分为业务架构、应用架构、技术架构,业务架构是战略,应用架构是战术,技术架构是装备。其中应用架构承上启下,一方面承接业务架构的落地,另一方面影响技术选型。应用架构本质应用作为独立可部署的单元,为系统划分了明确的边界,深刻影响系统功能组织、代码开发、部署和运维等各方面,应用架构定义系统有哪些应用、以及应用之间如何分工和合作。分有两种方式,一种是水平分,按照功能处理顺序划分应用,比如把系统分为web前端/中间服务/后台任务,这是面向业务深度的划分。另一种是垂直分,按照不同的业务类型划分应用,比

2021-10-12 10:41:35 1768

空空如也

空空如也

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

TA关注的人

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