自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

聆听风雨的博客

写点小事情

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

原创 C++程序员技能树

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

2019-08-22 11:49:36 1214

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

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

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

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

《代码大全2》读书笔记

2022-10-23 11:04:02 116

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

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

2022-10-22 18:31:42 216

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

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

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

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

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

2022-09-25 14:33:42 105

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

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

2022-09-11 20:57:40 130

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

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

2022-09-04 16:53:18 90

原创 asyncio.run 会close当前的event_loop

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

2022-09-03 20:33:57 156

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

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

2022-09-03 20:14:41 744

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

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

2022-08-20 19:22:13 761

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

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

2022-08-13 20:15:03 940

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

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

2022-08-13 17:48:00 134

原创 tokio channel性能测试

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

2022-07-18 14:22:35 338

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

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

2022-06-16 20:09:03 294

原创 rust入门学习指南

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

2022-06-15 20:31:25 3073 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 821

原创 Rust 限流算法crate调研

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

2022-05-23 22:30:00 373

原创 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 144

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

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

2022-05-20 08:30:00 353

原创 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 716

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

javascript 获取毫秒、纳秒时间戳

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

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

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

2022-05-05 21:30:00 1180

原创 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 1626

原创 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 391

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

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

2022-04-22 21:00:00 1078

原创 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 1829

原创 Python asyncio 性能分析

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

2022-04-14 19:53:20 783

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

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

2022-04-12 20:11:07 1688

原创 使用Psexec.exe 命令行远程windows执行命令

背景:博主今天遇到个问题,就是通过远程桌面远程公司电脑的时候一直卡在请稍等页面无法操作。这种问题一般重启即可解决,但由于周末公司也没人帮忙重启。所以想到有没有可以像linux那样命令行的方式远程到windows。结果一搜,还真有。1、下载psexecPsExec - Windows Sysinternals | Microsoft Docs2、命令行链接PsExec.exe \\192.168.1.1 -u administrator -p password -i -c cmd.exe

2022-04-10 19:02:20 3248

原创 rust 使用hotwatch 监控文件变化

hotwatch是一个可以监控文件变化的crate,使用起来非常方便。参考:GitHub - francesca64/hotwatch: A Rust library for conveniently watching and handling file changes.代码示例如下:use std::{thread::sleep, time::Duration};fn main() { use hotwatch::{Event, Hotwatch}; let mut hot

2022-04-10 13:07:44 2687

原创 python获取当前进程的CPU内存等信息

简介:psutil可以获取操作系统的各种信息,本文通过一个简单的示例介绍如何获取当前进程的CPU和内存信息。安装:pip install psutil代码示例:import psutilimport osdef get_cpu_mem(): pid = os.getpid() p=psutil.Process(pid) cpu_percent = p.cpu_percent() mem_percent = p.memory_percent()

2022-04-06 21:20:45 3953

原创 cargo build failed to run custom build command for `openssl-sys v0.9.72` 问题解决

问题:新装的ubuntu环境,cargo build失败,报错failed to run custom build command for `openssl-sys v0.9.72` ,如下图。解决方法:运行以下命令apt install pkg-config -y apt-get install libssl-dev -y

2022-04-05 18:44:35 1531

原创 rust 线程间传递裸指针

前言:众所周知,rust中要想在线程间传递对象,该对象必须实现Send或者Sync的trait。而裸指针是不能在线程间传递的。但是某些场景下又需要在线程间传递裸指针,比如夸语言编程的时候,需要将一个C的指针在多线程间使用。此时就需要一些技巧了。本文介绍如何在线程间传递裸指针。一、正常场景如下述代码所示,一般情况下我们使用多线程move的都是可以Send的对象。此时,该对象会在每个线程中都拷贝一份。所以多线程可以正常运行。fn main() { use std::thread;...

2022-04-01 00:45:00 595

原创 rust 在x64平台上交叉编译aarch64的成果物

rust 在x64平台上交叉编译aarch64的成果物

2022-03-26 12:46:25 1512

原创 Rust 多线程操作全局变量

本实例实现以下逻辑:1、定义了一个全局变量CURRENT_SEQ用于记录序列号2、另一个全局变量SEQ_VEC用于放置生成的序列号。3、开了50个线程,每个线程中都对CURRENT_SEQ执行1000次+1操作并将结果放入SEQ_VEC4、输出SEQ_VEC代码如下:use once_cell::sync::Lazy;use std::sync::atomic::{AtomicUsize, Ordering};static CURRENT_SEQ: AtomicUsize =

2022-03-24 23:30:00 1235

原创 cargo test 报错 STATUS_DLL_NOT_FOUND

windows 下 运行cargo test 报错,如下:The command "cargo test --all" exited with 127. Finished test [unoptimized + debuginfo] target(s) in 25.78s Running target\debug\deps\ggwp_zgui-3b74f8e4b6c31eb3.exe Running target\debug\deps\ggwp_zscene-ec8c5c4

2022-03-17 16:54:20 860

原创 valgrind massif vgdb 排查内存泄露问题

前言Valgrind中的memcheck工具也能排查内存泄露,但是主要是用于排查分配与释放不匹配,少释放或多释放等问题。但是如果一个模块不断的申请内存,但是从来没释放造成的内存堆积,用memcheck就检测不出来了。此时需要使用massif。massif的基础原理是隔一段时间拍一个内存快照,通过对比不同快照间的差距,分析出那些模块内存在不断上涨。代码量大(百万行)时,使用massif产生快照文件会用很长时间。所以本文使用massif +vgdb的方式来排查。使用方法运行massif

2022-03-02 19:02:54 264

原创 windows 下使用命令行 操作防火墙

比如放开一个端口:netsh advfirewall firewall add rule name= "Open Port 80" dir=in action=allow protocol=TCP localport=80详情可参考:使用 netsh advfirewall 防火墙上下文 - Windows Server | Microsoft Docs

2022-02-15 11:27:00 129

原创 Linux下编译链接动态库符号问题

一般大型的项目会有许多个动态库、静态库。许多个库可能会有符号冲突的问题,如果不对符号进行管理,会引发各种意想不到的问题。

2022-01-01 09:45:00 629

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

SpringMVCDemo

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

2017-04-06

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

TA关注的人

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