自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

聆听风雨的博客

写点小事情

  • 博客(239)
  • 资源 (11)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++程序员技能树

图片形式看起来不直观,可访问在线脑图:https://www.processon.com/view/link/5d415690e4b058ef96bba000

2019-08-22 11:49:36 1667 1

原创 使用Python将京东账单导入到随手记

本文介绍了如何将京东的账单导入到随手记。

2023-12-11 08:00:00 74

原创 rust tokio select!宏详解

本文介绍Tokio中select!的用法,重点是使用过程中可能遇到的问题,比如阻塞问题、优先级问题、问题。在Tokio中,select!是一个宏,用于同时等待多个异步任务,并在其中任意一个任务完成时执行相应的逻辑。

2023-11-27 08:00:00 463 1

原创 quinn源码解析:QUIC数据包是如何发送的

本文主要介绍quinn发送quic数据的流程。quinn是Rust编程语言中用于实现QUIC(Quick UDP Internet Connections)协议的一个crate(包)。它提供了一个高级别的API,用于构建基于QUIC的网络应用程序。quinn crate的设计目标是提供一个简洁、安全和高性能的QUIC实现。它内部使用了Rust的异步编程模型(async/await),使得编写异步网络代码更加方便和高效。

2023-11-20 08:00:00 326

原创 windows qos api使用示例

本文给出C++版以及Rust版调用windows API实现QOS的示例,并提出一些注意事项。QOS可以用来区分socket 优先级、实现带宽控制等诸多功能。

2023-11-13 08:00:00 201

原创 rust实现quic服务端和客户端

演示如何使用 Quinn 库实现一个简单的 QUIC 客户端和服务器。QUIC 是一种基于 UDP 的协议,用于在互联网上进行快速和安全的通信。

2023-11-11 03:30:00 892

原创 Blocking waiting for file lock on the registry index 问题解决

本文介绍如何解决cargo build时一直卡在Blocking waiting for file lock on the registry index问题

2023-11-07 19:52:39 244

原创 各大开源组件都在使用什么样的限流算法?

本文引用其他博文的观点介绍几种常见的限流算法,并用rust实现一个令牌桶算法的限流器。最后总结一些开源组件实际上使用的是什么样的限流算法。

2023-11-06 08:00:00 50

原创 抓包分析DSCP字段在FTP/RSTP协议中的应用

本文介绍DSCP字段的作用,以及抓包分析DSCP字段在FTP协议中的应用。最后通过实验证明有可能DSCP字段实际上对普通用户没啥用,原因是运营商可能会将用户设置的DSCP字段重置。

2023-10-30 08:00:00 1254

原创 Rust实现基于Tokio的限制内存占用的channel

本文介绍如何基于tokio的channel实现一个限制内存占用的channel。

2023-10-24 20:03:19 550

原创 Orleans的成员管理和故障检测故障检测

Orleans框架是一个基于.NET平台的开源分布式系统框架,用于开发可扩展,高可用,高性能的云服务应用程序。它采用了Actor模型,将分布式系统中的各个节点抽象成为Actor,使得开发者可以更加专注于业务逻辑的实现,而无需关注底层的通信和协调机制。

2023-10-18 08:00:00 171

原创 高性能定时器实现

本文介绍常见的几种定时器实现方式,并对比其特点。

2023-10-17 08:00:00 293

原创 python hook系统方法print,使得所有输出带上时间戳

hook print,使得所有的print带上时间戳

2022-11-12 19:34:19 779 1

原创 《代码大全2》读书笔记

《代码大全2》读书笔记

2022-10-23 11:04:02 242

原创 CSDN高手都在什么省份?Python获取TOP100用户分布

本文介绍如何使用Python获取CSDN高手用户所在省份,并根据统计结果画图。

2022-10-22 18:31:42 377

原创 使用Python将微信和支付宝账单导入随手记

本文介绍如何使用Python将微信和支付宝账单转换为可以导入随手记的文件,实现微信和支付宝账单的批量导入。

2022-10-15 21:52:27 4992 2

原创 《rust死灵书》阅读笔记

本书范围内的主题包括:(不)安全的含义、语言和标准库提供的不安全基础、用这些不安全基础创建安全抽象的技术、子类型和可变性(variance)、异常安全(恐慌/unwind 安全性)、与未初始化的内存相关的工作、类型转换、并发、与其他语言的互操作(FFI)、优化技巧、如何构建低级到编译器/操作系统/硬件的基元(primitives)、如何不使内存模型程序员生气、如何使内存模型程序员生气、以及更多。

2022-09-25 14:33:42 267

原创 《Orleans 构建高性能分布式Actor服务》读书笔记

《Orleans构建高性能分布式Actor服务》主要介绍了虚拟Actor模型和Orleans运行时、资源管理、消息传递、集群构建、数据持久化及可靠性管理等组件,还对Orleans的流式处理、分布式事务、多集群配置与部署等功能进行了介绍。全面介绍了Orleans 的主要功能与特点,并结合实际互联网应用场景给出了多个应用实例。

2022-09-11 20:57:40 269

原创 《软技能--代码之外的生存指南》读书笔记

本书共分为职业篇、自我营销篇、学习篇、生产力篇、理财篇、健身篇、精神篇等七篇,概括了软件行业从业人员所需的“软技能”。通过阅读本书,软件工程人员、编程人员和其他技术人员能够积极思考自己的职业生涯,丰富自己的生活,让自己更接近成功。

2022-09-04 16:53:18 177

原创 asyncio.run 会close当前的event_loop

asyncio.run执行完之后会终结异步生成器,并关闭线程池。不要再asyncio.run之后调用asynio.get_event_loop()

2022-09-03 20:33:57 422

原创 actix http消息处理源码剖析

​本文以官方示例入手,剖析一下http消息的处理流程。​

2022-09-03 20:14:41 944

原创 Python使用contextvars模块传递上下文的底层原理

contextvars:是Python提供的用于存放上下文信息的模块,支持asyncio,可以将上下文信息无感地在不同的协程方法中传递。contextvars模块主要有两个类:ContextVar和Context,Context可以是一个map,map的键是ContextVar。不同方法中的上下文传递实际上是通过拷贝Context来实现的。本文主要介绍contextvars模块的基本用法、底层实现、写时拷贝以及浅拷贝需要注意的事项。

2022-08-20 19:22:13 1788

翻译 py-spy: Python程序的性能分析工具

py-spy是一个python程序的采样性能分析工具。可以在不重启程序或修改代码的情况下可视化地展示Python程序的时间消耗情况。py-spy的开销很低:它用rust编写、和要分析的Python程序不在同一个进程,这意味着py-spy可以安全地在生产环境使用。...

2022-08-13 20:15:03 1578

原创 《数据密集型应用系统设计》思维导图(读书笔记)

《数据密集型应用系统设计》算的上是系统设计领域的神书了。书中关注与数据处理,但不仅仅是数据处理。一些诸如事务、分布式系统设计领域中的关键问题,本书也做了比较透彻的分析。如果你对分布式、数据处理等方面的事情比较感兴趣,不妨读一读。...

2022-08-13 17:48:00 237

原创 tokio channel性能测试

本文通过简单的场景测试tokio 中channel的收发性能。代码开了两个线程,一个收一个发,持续十秒。最终打印每秒发送次数。

2022-07-18 14:22:35 563

原创 如何合理利用通勤时间

从3月起,笔者每天大概有一个小时在地铁上。本文记录一些通勤路上做的事情,给各位读者参考如何利用通勤时间。

2022-06-16 20:09:03 396

原创 rust入门学习指南

已入职新公司三个月,rust技能从0开始,到现在已经可以熟练编写各种功能了。这里分享一下笔者的rust学习路线。

2022-06-15 20:31:25 3879 2

原创 rust-analyzer 的warning/error提示与实际位置不符合问题解决

环境:windows vscode rust-analyzer问题现象如下图,错误提示出现在莫名其妙的地方。原因:应该是最近版本引入的bug。解决方法:回退到历史版本,或者更新为预览版。笔者是选择了升级到预览版。参考:https://github.com/rust-lang/rust-analyzer/issues/12293...

2022-05-25 10:14:36 1426

原创 Rust 限流算法crate调研

简介:本文介绍几个Rust中实现了限流算法的crate。背景:最近工作需要实现限流算法。所以调研了一些限流算法。最终认为令牌桶算法比较适合我们的业务场景。想着rust应该有现成的库可以复用,所以简单看了下。几个可选的crate1、leaky_bucket - Rust基于tokio 异步的,实现了令牌桶算法,通过acquire接口来获取令牌。获取不到的时候会阻塞当前协程。use leaky_bucket::RateLimiter;let limiter = RateLi

2022-05-23 22:30:00 691

原创 orleans 限流策略源码剖析

orleans简介:Orleans is a cross-platform framework for building robust, scalable distributed applications | Microsoft Orleans Documentation1、gateway的建立链接和收消息限流都是简单判断一下cpu是否过载了。2、事务限流判断下(历史速率*1+ 当前速率*2)/3是不是超过阈值了3、activation限流有两个阈值:软阈值和硬阈值。统计当.

2022-05-20 22:15:00 240

原创 actix websocket消息处理流程源码剖析

通过阅读actix源码剖析其消息处理的流程。

2022-05-20 08:30:00 604

原创 rust hashmap 按值排序

use std::collections::HashMap;use rand::random;fn main() { let mut count: HashMap<char, u32> = HashMap::new(); for i in 0..26 { count.insert( ('a' as u8 + i) as char, (random::<usize>() % 26).try_int.

2022-05-19 23:00:00 1188

原创 javascript 获取毫秒、纳秒时间戳

javascript 获取毫秒、纳秒时间戳

2022-05-05 22:45:00 3888 3

原创 JavaScript 使用numjs和percentile求数组均值和百分位

使用numjs和percentile求数组均值和百分位

2022-05-05 21:30:00 1466

原创 Python asyncio 中await和create_task的区别

参考:python - Difference between await Coroutine and await Task - Stack Overflowawait的理解:1、立即开始执行协程对象,并允许它被挂起。--如果没有可被挂起的逻辑,则不会让出执行权。参考:python - When is asyncio's default scheduler fair? - Stack Overflow与 task的不同之处:1、create_task,是在loop里执行的,所以在loop调度该

2022-05-05 10:04:21 2314

原创 etcd:分布式注册服务中心,简介&& docker集群部署

1、简介etcd提供高可用、强一致性的小型的kv数据存储服务。2、应用场景共享配置、服务发现、集群监控、leader选举、分布式锁等场景。3、功能etcd适合存储少量重要的数据,而不是像redis那种存储大量的数据。常用操作:get、put、del、txn、watch4、底层原理MVCC、Raft、快照、WAL5、docker集群部署采用compose的方式进行部署,编写docker-compose.yml如下:version: "3.6"services:

2022-05-01 15:13:12 500

原创 rust 使用tokio的Notify 和timeout实现类似可超时条件变量的效果

Notify配合timeout,在异步编程中实现类似可超时条件变量的效果

2022-04-22 21:00:00 1651

原创 C++ 使用Python/C API的Hello World示例

通过Python/C API可以用C/C++或者其他语言(比如rust、go)来编写Python的扩展。很多机器学习的Python库底层其实都是用C/C++实现的。其他语言也可以通过Python/C API来调用Python的模块,总之Python/C API就是一座Python与其他语言之间的桥梁。本文通过一个简单的例子介绍如何在C/C++中调用Python。

2022-04-20 20:17:53 2223

原创 Python asyncio 性能分析

本文介绍如何使用yappi对python协程进行性能分析,并使用snakeviz工具、gprof2dot工具分别对结果进行可视化。

2022-04-14 19:53:20 1014

原创 wsl2 固定IP && windows与wsl里的docker镜像互联互通

首先按照给wsl2的ubuntu分配固定IP,优化windows开发环境 - 知乎这里说的给wsl设置个固定的IP然后按照wsl2中docker内部网络的端口转发-云海天教程这里说的设置ip转发即可。完了之后windows可以直接访问docker镜像的IP,还是很赞的。...

2022-04-12 20:11:07 2773

linux和windows下分别wirshark抓包ftp协议

在linux和windows下分别wirshark抓包ftp协议 linux.pcap:在Linux下抓包得到的,服务端为vsftpd,客户端为ftp命令 windows.pcapng:在windows下抓包得到的,服务端为windows自带的ftp服务器,客户端为MobaXterm中的ftp功能

2023-10-27

libcapn-1.0.0(with openssl1.1)(vs2015,windows).rar

libcapn1.0.0的源码,包括可以直接编译的vs2015工程以及openssl1.1 1、把这玩意放到D盘根目录下,目录结构见图片:目录结构.png 2、打开build目录下的工程即可编译 3、capn64文件夹里是已经编译的libcapn库 4、win\thirdparty\openssl文件夹里是已经编译好的openssl1.1 5、详情可参考博客:https://blog.csdn.net/luchengtao11/article/details/118580503

2021-07-08

tcp的三次握手和四次挥手抓包-.pcapng

用wireshark抓取的tcp的三次握手和四次挥手的包,适用于初学者了解tcp连接建立和断开的流程

2020-06-17

libcurl7.65.3+openssl1.1.1e+nghttp2-1.40.0+libssh2+libzip.rar

libcurl7.65.3+openssl1.1.1e+nghttp2-1.40.0+libssh2+libzip ,源码+linux下的成果物。 用于编译lincurl使其支持dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp http2等协议 我当时编译它主要是为了让libcurl支持http2和sftp的,编译器起来很麻烦,所以这里直接把成果物分享出来 libcurl的成果物可直接拿去用,如果需要不同版本的组合可自行替换其中的某个库

2020-03-24

Snipaste-1.15.3-x64.rar Windows下的截图工具

https://zh.snipaste.com/download.html 官网可以了解更多。下载 snipaste.zip - CSDN下载 比qq和win10自带的截图软件方便多了,snipaste 截图工具。

2020-03-05

spacesniffer_1_3_0_2 磁盘空间分析工具

可以扫描磁盘,查看各个磁盘的具体文件占用情况,方便及时处理不必要的垃圾文件。SpaceSniffer是一个可以让您硬盘中文件和文件夹的分布情况的应用程序。 通过使用TreeMap的可视化布局,你可以直观地看到在你硬盘上大的文件和文件夹。

2020-03-05

Boost.Aiso实现Http服务端,VS2015工程可直接编译运行

本工程在VS2015环境下可直接编译运行,不需要修改任何参数,包含头文件和依赖库已经附加进去 使用方法 1、打开HttpServer\project\vs2015\HTTPServer下的解决方案 2、设置编译环境为Release X64 3、编译运行 4、可执行文件生成在HttpServer\target\Release\x64中 5、运行之后访问 浏览器访问 http://127.0.0.1:8080/index.html 即可访问到HttpServer\docs下的文件

2019-07-30

链表迭代器模式Demo

2017-04-18

JMS和MDB的实例代码

JMS和MDB的实例代码

2017-04-18

各种设计模式的示例代码

各种设计模式的示例代码

2017-04-18

SpringMVCDemo2

SpringMVC与Apache Tiles的整合,详情请查看本人博客:http://blog.csdn.net/luchengtao11/article/details/69487622

2017-04-06

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

TA关注的人

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