<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lesive_1421的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lesive_1421</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lesive_1421]]></copyright><item><title><![CDATA[Python RPC 不会？不妨看看这篇文章]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119460685</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119460685</guid><author>lesive_1421</author><pubDate>Fri, 06 Aug 2021 17:49:38 +0800</pubDate><description><![CDATA[1. 前言

大家好，我是安果！

RPC，全程为RemoteProcedureCall，是一种进程间的通信方式，它采用「服务端 /客户机」模式，是一种请求响应模型

其中，服务端负责提供服务程序、响应请求做具体的实现逻辑，客户机负责请求调用

主流的 RPC 框架包含：


	阿里的 Dubbo
	
	
	Facebook 的Thrift
	
	
	Google 的gRpc
	
	
	新浪微博的Motan
	
	
	Golang 生态的rpcx
	
其中，gRpc 和Thrift是...]]></description><category></category></item><item><title><![CDATA[SpringBoot 源码解析笔记]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119460584</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119460584</guid><author>lesive_1421</author><pubDate>Fri, 06 Aug 2021 17:45:00 +0800</pubDate><description><![CDATA[欢迎各位关注我的笔记仓库，clone 仓库到本地后使用 Typora 阅读效果更好。

如果大家只关注 SpringBoot 如何自动装配，可以只看“注解分析”和“装配流程”两个小节

启动流程

应用启动：


@SpringBootApplication
public class BootApplication {
    public static void main(String[] args) {
        // 启动代码
        SpringApplication.run(Boot]]></description><category></category></item><item><title><![CDATA[谈谈操作系统的多进程]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119460554</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119460554</guid><author>lesive_1421</author><pubDate>Fri, 06 Aug 2021 17:43:46 +0800</pubDate><description><![CDATA[操作系统的多进程图像

操作系统主要控制计算机的硬件，而其中最重要的就是CPU，因此操作系统的最主要工作就是控制CPU更好地执行命令，那么在介绍进程之前，我们首先来了解一下CPU的工作原理是怎样的。

一、CPU的工作模式

首先，CPU取出程序指针PC，然后到对应的寄存器中取出地址为PC的指令，通过译码来分析指令的内容，移动相应寄存器的内容来实现指令，最后程序指针PC指向下一条指令，CPU重复上述工作过程。总的来说，CPU的工作模式就是 “取址-译码-执行”。比如CPU执行如下所示的指令：


50: m]]></description><category></category></item><item><title><![CDATA[git合作开发流程]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119460408</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119460408</guid><author>lesive_1421</author><pubDate>Fri, 06 Aug 2021 17:41:38 +0800</pubDate><description><![CDATA[一、创建项目与管理

创建项目和管理项目都是管理账号需要做的事情，如果只是合作开发不进行管理，只需要浏览第二部分的内容即可。

1.创建项目

登录代码托管网站，点击添加项目，如下图所示：




填写相应的项目信息，如下图所示：




完成会生成项目的url，复制url后面会使用到，使用指令时需要注意每个项目的都不一样，如下图所示：




在本地创建项目文件，并创建项目说明文件“README.md”，如下图所示：




打开git执行如下命令操作
初始化git bash客户端，进入创建的项目文件夹执]]></description><category></category></item><item><title><![CDATA[YOLO-V4 实现口罩识别（附加数据、数据批量处理程序）]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119460361</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119460361</guid><author>lesive_1421</author><pubDate>Fri, 06 Aug 2021 17:36:39 +0800</pubDate><description><![CDATA[图1、网络结构图

yolov1网络结构图是由24个卷积层、2个全连接层构成，其作者也说过灵感来自用于图像分类的GoogLeNet模型，但是与GoogLeNet模型不同的是简单的使用了1×1简化层和3×3卷积层（类似M. Lin, Q. Chen, and S. Y an. Network in network. CoRR,abs/1312.4400, 2013. 2），可以在上图看到。

输入的图像为448448，经过以上的结构，输出的为77*1024的张量，是第7个图样。在激活函数上，最后一层输出时用了]]></description><category></category></item><item><title><![CDATA[剖析虚幻渲染体系（09）- 材质体系]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119460340</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119460340</guid><author>lesive_1421</author><pubDate>Fri, 06 Aug 2021 17:35:39 +0800</pubDate><description><![CDATA[9.2 材质基础

本章将分析材质涉及的基础概念和类型，阐述它们之间的基本关系和使用方法。

9.2.1 UMaterial

UMaterial是属于引擎层的概念，对应着我们在材质编辑器编辑的uasset资源文件，可以被应用到网格上，以便控制它在场景中的视觉效果。它继承自UMaterialInterface，它们的定义如下：


// Engine\Source\Runtime\Engine\Classes\Materials\MaterialInterface.h

// 材质的基础接口类, 定义了大量]]></description><category></category></item><item><title><![CDATA[debug：am trace-ipc源码分析]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119186481</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119186481</guid><author>lesive_1421</author><pubDate>Wed, 28 Jul 2021 17:58:13 +0800</pubDate><description><![CDATA[如果您有 binder 事务，则可以使用以下adb命令捕获其调用堆栈：


$ adb shell am trace-ipc start
    … use the app - scroll/animate ...
    $ adb shell am trace-ipc stop --dump-file /data/local/tmp/ipc-trace.txt
    $ adb pull /data/local/tmp/ipc-trace.txt
    


命令提示


:/ # am
Act..]]></description><category></category></item><item><title><![CDATA[代码重构与单元测试——对方法的参数进行重构（五）]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119186386</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119186386</guid><author>lesive_1421</author><pubDate>Wed, 28 Jul 2021 17:55:18 +0800</pubDate><description><![CDATA[五、重构2：对GetFrequentRenterPoints方法的参数进行重构

 重构最重要的思想就是普通程序也能写出优秀的程序。重构一个项目的巨大工作量就是修改变量名、提取方法、抽取接口、修改方法参数等简单的工作。作为一个普通的程序就可以通过这些简单且容易完成的工作目标来提升自己的编码能力，加深自己对项目的认知，从而为最高层次的重构打下基础。在这个过程中发现Bug、修改Bug，这不是重构。优化不是重构。强化异常捕捉、增加预防性代码不是重构。让代码更容易测试不是重构——尽管重构能达到相同的效果...]]></description><category></category></item><item><title><![CDATA[利用 PGO 提升 .NET 程序性能]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119186329</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119186329</guid><author>lesive_1421</author><pubDate>Wed, 28 Jul 2021 17:53:11 +0800</pubDate><description><![CDATA[NET 6 开始初步引入 PGO。PGO 即 Profile Guided Optimization，通过收集运行时信息来指导 JIT 如何优化代码，相比以前没有 PGO 时可以做更多以前难以完成的优化。

下面我们用 .NET 6 的 nightly build 版本6.0.100-rc.1.21377.6来试试新的 PGO。

PGO 工具#

.NET 6 提供了静态 PGO 和动态 PGO。前者通过工具收集 profile 数据，然后应用到下一次编译当中指导编译器如何进行代码优化；后者则直接在运..]]></description><category></category></item><item><title><![CDATA[使用Elastic Job的分片配置加速任务执行和提高资源利用率]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119186257</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119186257</guid><author>lesive_1421</author><pubDate>Wed, 28 Jul 2021 17:51:01 +0800</pubDate><description><![CDATA[上一篇，我们介绍了如何使用Elastic Job实现定时任务。解决了使用@Scheduled来实现时候存在的竞争问题，同时也实现了定时任务的高可用执行。

然而，还有一类问题是我们在做定时任务时候容易出现的，就是任务执行速度时间过长；同时，为了实现定时任务的高可用，还启动了很多任务实例，但每个任务执行时候就一个实例在跑，资源利用率不高。

所以，接下来我们就来继续介绍，使用Elastic Job的分片配置，来为任务执行加加速，资源利用抬抬高的目标！

动手试试

建议直接下载文末仓库中的chapter7-2]]></description><category></category></item><item><title><![CDATA[SpringCloud学习之【NACOS实现服务的注册与发现】]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119186172</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119186172</guid><author>lesive_1421</author><pubDate>Wed, 28 Jul 2021 17:47:30 +0800</pubDate><description><![CDATA[服务 (Service)

	服务是指一个或一组软件功能（例如特定信息的检索或一组操作的执行），其目的是不同的客户端可以为不同的目的重用（例如通过跨进程的网络调用）。Nacos 支持主流的服务生态，如 Kubernetes Service、gRPC|Dubbo RPC Service 或者 Spring Cloud RESTful Service.
	
	
	服务注册中心 (Service Registry)

	服务注册中心，它是服务，其实例及元数据的数据库。服务实例在启动时注册到服务注册表，并在关...]]></description><category></category></item><item><title><![CDATA[前端学习 数据结构与算法 快速入门 系列 —— 数组]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119186117</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119186117</guid><author>lesive_1421</author><pubDate>Wed, 28 Jul 2021 17:45:20 +0800</pubDate><description><![CDATA[数组数据结构

数组是最简单的数据结构。

几乎所有编程语言都原始支持数组。

数组存储一系列同一种数据类型的值。虽然 javascript 中的数组能保存不同类型的值，但我们还是遵循最佳实践，因为大多数语言都没这个能力。

注：本篇文章不会介绍如何实现一个数组，更多的是有关数组的功能和特性，这对我们后续编写自己的算法非常有用。

为什么使用数组

假如有这样一个需求，记录上周每天的开销。可以这么做：


let day1 = 110
let day2 = 120
let day3 = 130
let da]]></description><category></category></item><item><title><![CDATA[Linux用户提权管理方案]]></title><link>https://blog.youkuaiyun.com/lesive_1421/article/details/119186075</link><guid>https://blog.youkuaiyun.com/lesive_1421/article/details/119186075</guid><author>lesive_1421</author><pubDate>Wed, 28 Jul 2021 17:43:44 +0800</pubDate><description><![CDATA[提权管理方案背景：

如果一个公司有10余个运维或网络安全人员，同时管理服务器，切换到管理员用户时（su - root），必须要有root管理员密码，如果其中一人修改过root密码，其他用户则登录不了，那么要找回丢失的密码，要么就是系统重启，要么就是进入单用户模式进行重新配置密码，造成大量的数据无法访问，带来经济损失，为避免出现此种情况导致工作效率低下，我们允许有少量的非root用户依然有root用户的编辑及管理权限（某个用户在执行某个命令的时候，拥有root的最高权限），但用户还是非root用户本身，所以]]></description><category></category></item></channel></rss>