自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦一样的博客,神话般的感觉

让简单的事情变的容易,让困难的事情变的可行!

  • 博客(211)
  • 资源 (30)
  • 问答 (1)
  • 收藏
  • 关注

原创 content-type与文件扩展名对照表

内容来自。已经转换成代码了。

2024-03-04 10:29:15 715

原创 rust原生语言对比 <在rust内> 执行javascirpt与lua解释型语言的性能

对于javascript我使用的是js-sandbox库。我测试当前js-sandbox的release版本是0.1.6不知道为什么无法在mac下正常运行,只能以path的方式指向js-sandbox的源码了。大家可以看到,实际上mac平台的cpu性能比ubuntu的还要好。但是js的v8引擎还不如rlua的解释器。在linux平台上的对比分别是2700倍和70倍的执行效率。在mac平台上的对比分别是4000倍和130倍的执行效率。对于lua我使用的是rlua库,版本号为0.19.8。

2024-02-04 08:03:52 523

原创 rust中执行lua代码

【代码】rust中执行lua代码。

2024-02-02 07:31:24 60

原创 macOS下所有必须插件都已正常安装但还是无法运行rust程序

删除 ~/.vscode/extensions/vadimcn.vscode-lldb-1.10.0/lldb/bin/debugserver 文件。macOS 下vs code 已安装 ra 和 codelldb 的情况下 无法命中断点。

2023-12-15 18:56:58 72

原创 crate mio中waker的一个使用细节,仅记录当下结论。以便稍后继续研究。

其实整套代码的运行与mio的其他网络库是一样的。只是使用细节的地方做一些记录,否则程序不会按照自己的意愿正常执行。先看代码,然后再来讲。这里说重点:wake对象调用wake函数所在的线程,不可以在第一时间直接结束自己,否则唤醒的事件不会通知到,poll阻塞的线程。上面的结论,可以在代码注释中标有5555555的这一行注释,加以测试。

2023-12-12 06:47:13 72

原创 Rust Send与Sync。网上有很多理论方面的文章,现在从实践出发,来学习一下这两个trait。

简单讲一下,看不懂的网上其他文章都有的,有更详细的,easy的很。我只说通俗易懂的。

2023-12-02 11:08:19 378

原创 extra arguments to `rustc` can only be passed to one target。使用cargo expand命令的时候出现问题。两种解决方案。

但是大家在平时正常开发的是否,大部分情况下src目录下是需要包含lib.rs文件的。第一在toml文件中指定一个新的main.rs文件的位值以及编译后可执行文件的名字。这里的xxxx就是你指定的新的可执行文件的名字。最后直接运行cargo expand就可以打印展开的宏了。使用cargo expand命令的前提条件,第一就是需要在nightly下。至此,其实我们的第二种解决方案,也是应了刚才的错误提示了,我们指定了bin。大家注意我的目录结构中是包含src目录的,这个问题我一会再说。

2023-10-31 11:46:06 130

原创 linux 性能优化

被压测服务器需要保持100W长连接,客户和服务器端是通过socket通讯的,每个连接需要建立一个socket,程序需要保持100W长连接就需要单个程序能打开100W个文件句柄。

2023-10-11 07:43:33 129

原创 rust cfg的使用

当然了还要有综合用法。println!("abc");这个呃呃呃时候不但要设置Cargo.toml中的features还要设置编译前的环境变量。否则指定函数将无法被找到。

2023-10-10 10:11:17 407

原创 rust 字符串字面量 - 字符串前缀

如果字符串中同样包含#,那么可以增加限定开始结束字符串的#数量即可。只要开始和结束的#比字符串内的#多,即可。如下两种是同一个意思,只是说加了r的字符串属于《原始字符串》里边可以包含一些特殊的字符。增加了《原始字符串》标识符的字符串内部的转义全部都会被取消。如果字符串内包含双引号,rust增加了r#的方式。字节字符串 - ASCII字节字面值。#来限定字符串的开始和结束。

2023-09-17 07:18:56 315

原创 unknown feature `proc_macro_span_shrink`//could not compile xxx lib问题解决,此解决方案不管是在哪一个系统都可以解决此问题。

问题解决:直接打开cargo.lock,找到package的name等于这个上边错误描述中could not compile xxx lib这个错误描述中的xxx。问题分析:由于项目是一个很久才没有编译国的项目,之前编译是成功的,但是这次却失败了。这个文件描述的是上一次成功编译的环境状态,依赖,版本。它包含了上次成功编译的信息。一个在本地很久没有编译过的项目,或者说从网上下载下来了一个开源的项目,只要开始编译就会报unknown feture的错误,或者could not compile xxx lib。

2023-09-14 06:46:21 422

原创 rust中使用sqlite 之 rusqlite使用

【代码】rust中使用sqlite 之 rusqlite使用。

2023-09-01 06:20:02 1166

原创 rust交叉编译 在mac下编译linux和windows

到目标机器执行的时候,出现问题。可以尝试更换传输方式。打比方之前使用的ftp,现在你可以先压缩文件然后再尝试传输文件。linux通常就是musl和gnu。我用的测试系统是ubuntu,所以是gnu。如果已经安装这里会显示(installed)。如下配置添加到Cargo.toml。

2023-08-26 10:05:48 619

原创 P2P 网络,PING程序。

没有废话,直接上版本号和代码,以及讲解。

2023-08-11 07:14:40 1409

原创 rust reborrow - 重借用

第一:对于不可变借用&T,它的传递属于Copy语意。对于可变借用&mut T它的传递属于Move语意或reborrow。第二:可变引用在同一个时刻只能拥有一个,但是有一个重借用(reborrow)的方式,可以让借用重新获得可变引用。下面为reborrow的三种方式。

2023-07-27 10:06:57 759

原创 Rust pin unpin理解 为什么说没有pin的数据移动是不安全的深入理解

看了网上一片文章,有了一些理解。想要理解pin与unpin主要要理解数据再移动的时候的不安全。就知道了pin的重要性。

2023-06-08 07:28:31 161

原创 自我实现一个简单的LinkedList

记录一个自我实现的简单的LinkedList,双向链表。

2023-04-23 09:09:27 79 1

原创 rust 中 std::thread::panicking() 的用法

主要用于实现了Drop类型的实现函数中。主要的目的是在当前线程由于panic以后,可以继续执行一些其他弥补的指令。看过上面的代码和输出以后,现在得出结论。通过一个例子来做一个测试。

2023-04-10 05:35:46 83

原创 Rust 多线程交互 自实现线程池,几种实现方式可行性对比,性能对比以及底层实现原理分析 CPU密集型

再加上刚才的测试数据不难分析出,当执行线程数量等于当前CPU数量的时候消耗较小这个时候Condvar的交互方式比mpsc的交互方式多出来的就是syscall的系统调用开销,毕竟用户态和内核态的交互消耗很大,这个地球人都知道。第三:由于执行线程个数的增加,执行的线程数量逐渐会比当前系统CPU数量多,增加了CPU彼此之间的上下文切换的消耗,线程比当前系统的CPU核心数月多上下文切换的耗时越大。我们还需要在整个线程池的的执行过程中,注入一个测试对象当线程池执行完所有需要的任务的时候,需要一个打印性能测试的结果。

2023-03-02 10:55:52 565

原创 Rust 智能指针 Box,Rc,Cell,Rc-Weak,RefCell,OnceCell,LazyCell,Arc,Arc-Weak,Mutex,RwLock

最简单的智能指针,rust的大部分标准库struct或标量类型是优先采用stack分配内存的。在大部分语言中,stack大小是在编译期确定的,二heap大小是在运行期确定的。rust中可以使用Box把任意类型放到heap中存储。这种情况下会报编译错误。它让你增加mut去声明变量a。但是可以通过RefCell改变这种情况。

2023-02-24 06:48:45 333

原创 rust过程宏 proc-macro-workshop解题-4-sorted

这一大关卡介绍的是属性式过程宏。

2023-02-18 17:54:16 797

原创 rust过程宏 proc-macro-workshop解题-3-seq

seq这个大题类目处理的是函数式的过程宏。

2023-02-18 08:29:30 387

原创 rust过程宏 proc-macro-workshop解题-2-debug

接下来我们来实现第大关卡debug过程宏的实现。这里主要考的也是派生宏的实现。我们这里不像第一个关卡了,我把每一个关卡实现的代码都粘贴出来,到最后就是完整的代码。

2023-02-16 10:34:18 333

原创 rust过程宏 proc-macro-workshop解题-1.1-builder 派生宏 自动生成结构体验证方法

本题目不是proc-macro-workshop提供的builder/9道题中的其中任何一道题。本题是我在网上搜索派生宏的时候,无意中查询到的,没有看到派生宏代码,就粘贴下来当作是一道题,自己实现了。这道题实际上就是为了一个struct结构体成员变量格式自动生成一个校验函数。通过惰性属性,分别为每一个成员变量生成对应不同的校验过程罢了。

2023-02-14 14:31:20 115

原创 rust过程宏 proc-macro-workshop解题-1-builder

我就直接粘贴我的答案了。答案都是联通的,可以跑通builder 1-9关的测试用例。builder这个目录的所有test主要测试的是派生宏的编写能力。

2023-02-14 11:54:49 89

原创 rust过程宏 proc-macro-workshop解题-0-介绍

proc-macro-workshop是一个学习rust过程宏非常好的工程。里边包含五大类题目。并且每种题目都有实际价值,可以应用在企业级项目中。我们在这里先介绍一下这个项目如何运行如何测试,如何验证过程宏的正确性以及如何调试。本文只围绕以下几个话题:第一:工程结构?第二:如何运行测试?第三:如何调试自己开发的过程宏?首先到网站下载这个工程。这里面的目录bitfield,builder,debug,seq,sorted。就是这个工程的五个题目了。

2023-02-13 07:40:56 411

原创 rust模式匹配的深度玩法

如果我现在想要直接拿到o这个变量内部深层次的Ses::man这个枚举类型中Man这个结构体的name成员变量的话。因为枚举的可能性比较多,需要多次匹配才可以拿到,当对象必须是人类,而且必须为男人的时候。第二:起始这里的模式匹配结构的写法与Object这个对象创建的时候的书写结构是一样的,少一层都不行。大家可以对比一下上面我们初始化这个结构体的时候的写法。打比方我有一个组合层次比较深的结构体,我想要拿到最底层的结构体成员变量的数据。这里不讲match,if let,while let,或者元组的匹配。

2023-02-12 07:53:10 96

原创 rust 所有权 ownership 深度解读, & 与 &mut 与 mut = &mut 的区别

在rust中,每一个value都有一个var也就是变量(所有者),这时这个var对于这个value具有所有权。所有权可以:move。所有权可以:borrow。在rust中也类似c中一样,把值分别存储在stack中和heap中。在stack上的变量彼此的赋值属于值传递。当然了并不代表变量对于值不具备所有权。如果变量存储在heap中,普通的赋值语句则属于对于heap中value所有权的move。也就是移动。下面代码回报错。

2023-02-01 11:36:24 366

原创 第一个rust程序,命令方-cargo-vscode

使用 cargo new 创建项目使用 cargo build 构建项目使用 cargo run 一步构建并运行项目使用 cargo check 在不生成二进制文件的情况下检查项目是否可编译使用 cargo build --release 构建项目发行版本使用 cargo run --release 运行发行版本,可测试发布版本的运行时间。

2023-02-01 10:16:32 345

原创 rust环境 在线安装-离线安装

执行如下命令会有命令行提示符让你选择,这个时候直接回车即可。安装完成以后需要让你在~/.cargo目录执行source命令,让rust环境生效。或者在任意目录执行如下命令。

2023-02-01 10:11:10 1294

原创 JDK21协程-虚线程 openjdk源码解读 底层从Java代码到C/C++代码初次深度解读 虚线程调优

自从2022-12-08开始,下一个LTS版本JDK21已经进入了开发阶段。小编在此进行了一次主线版本的协程的初体验。说是协程,其实在JVM内部是以**虚线程**的概念存在的。小编这次从java代码到C/C++代码初次深度解读一下**虚线程**,毕竟JDK21已经进入了开发阶段,等到JDK21LTS版本发布的时候,变动应该不会很大,到时候我会再出一片文章来深度解读一下**虚线程**。

2023-01-11 11:29:48 2503

原创 Linux系统x86-64架构下,从零实现一个系统调用。Ubuntu22.04LTS

这里要注意,这里既然是系统调用,会涉及到内核太和用户太的切换,并且用户空间和内核空间的切换。传入的数据类型为用户空间的数据类型,所以要加上__user。首先要会编译linux内核的源码,这块在我的另外一片文章里面。

2022-12-19 17:16:34 509

原创 ubuntu22.04LTS 内核源码编译,安装,卸载

到网站下载你自己版本的内核源码。使用如下命令查看自己的内核版本uname -r。

2022-12-15 11:34:43 1197

原创 如何测量两组汇编指令的执行效率

本文是纯干货。由于现代的处理器支持乱序执行代码,另一个说法叫做cpu指令重拍。为了测量的准确性,本例中使用了cpuid指令,属于序列化指令。它可以保证汇编指令的执行的有序性。用来避免cpu指令重拍。注意,这里说额是汇编指令,不是java和c中的volatile关键字,更不是什么内存屏障。本文汇编代码是在linux 64位cpu x86-64架构下编写的。现在直接上代码。

2022-12-08 10:21:30 191

原创 分布式事务,单JVM进程与多数据库,分布式事务技术选型,0-1过程,代码全。

由于很多小白程序员在单一JVM进程配合多数据库的架构环境中,总是考虑一主多从的mysql集群环境。还不知道mysql集群数据库按照表纵向分割以后,也是可以走数据库使用事务的。那么这里使用到的就是分布式事务,XA协议。现在大部分主流的数据库都支持XA协议。这里不用太多废话,直接上环境,上代码。这里请注意,不需要使用TCC那种服务层集群级别的事务为了让小白能够体会XA协议的分布式事务,先来一个未增加分布式事务的。在idea中鼠标右键目录,new->module首先是完整的pom文件pom.xml两个数

2022-12-07 07:50:22 177

原创 分布式事务。seata主线版本1.6.0-SHAPSHOT,Springboot2.7.6,AT与TCC模式。小白入门必看,0-1过程,代码全。

由于seata官方文档更新的比较慢,包括官方的demo所对应的seata也比较老旧,并且每个demo对应的seata版本都不一样,并且官方文档的描述无法一篇文章说明白,所以作为小白入门很辛苦。所以有了当下这片文章。本文也演示了AT模式与TCC模式混搭的配置方式。非常适合小白入手。https://blog.csdn.net/jl19861101/article/details/128075073系统分为三个系统,两个远程系统,一个在阿里云,一个在腾讯云,一个在本地。为了保护个人隐私,ip地址与用户名密码,都改

2022-12-06 17:28:13 1050

原创 seata1.6.0-SNAPSHOT版本JDK17。源码编译打包过程。

此过程我省略了idea打开项目的过程,因为比较easy。我们还是废话不多。直接上步骤。

2022-11-28 10:33:50 693

原创 nginx+redis+jvm三级缓存设计与落地实现

由于涉及到个人隐私,使用的是阿里云平台,所以下面的IP地址和密码我都做了修改。不是真实的地址。此模拟秒杀商品列表信息缓存案例实现的技术解决方案。

2022-11-19 13:25:35 1327

原创 rocketmq4.9.4 ubuntu环境启动过程

当前教程属于最简单的启动并与java语言的联通教程。

2022-11-03 15:03:49 373

原创 springboot+minio+nginx 安装+配置+访问

主控操作系统:macOS:12.6虚拟机:Ubuntu22.04我们使用springboot+minio负责上传编辑资源使用nginx+minio用来访问资源。

2022-10-13 09:19:49 784

代码临时存储,关联博客文章

代码临时存储,关联博客文章

2022-12-06

ASM4手册中文版.pdf.zip

asm4 使用手册中文版

2021-04-26

7、PPT模板,医疗.zip

7、PPT模板,医疗.zip

2021-01-27

6、PPT模版,医学护理-50套(精选).zip

6、PPT模版,医学护理-50套(精选).zip

2021-01-27

5、PPT模版,品管圈-50套.zip

5、PPT模版,品管圈-50套.zip

2021-01-27

4、PPT模版,护理查房-35套.zip

4、PPT模版,护理查房-35套.zip

2021-01-27

3、PPT模版,医疗护理-80套.zip

3、PPT模版,医疗护理-80套.zip

2021-01-27

2、PPT模版,医疗护理-45套.zip

2、PPT模版,医疗护理-45套.zip

2021-01-27

1、PPT模版,医疗护理-50套.zip

1、PPT模版,医疗护理-50套.zip

2021-01-27

小程序前端开发用素材

小程序前端开发用素材

2021-01-27

photoshop素材和笔刷

photoshop素材和笔刷

2021-01-27

Archive4.53 暴力破解工具.zip

Archive4.53 暴力破解工具.zip

2021-01-26

Navicat_Premium15.0.22_for_macw.dmg

Navicat_Premium15.0.22_for_macw.dmg

2021-01-26

webBTraceUtil_for_JDK1.8

个人开发的BTrace小工具。不需要再配置BTRACEHOME环境变量,可多人互不影响同时测试。使用方式,请参见:https://blog.csdn.net/jl19861101/article/details/88368830

2019-05-04

webBTraceUtil_for_JDK11

个人开发的BTrace小工具。不需要再配置BTRACEHOME环境变量,可多人互不影响同时测试。使用方式,请参见:https://blog.csdn.net/jl19861101/article/details/88368830

2019-05-04

Btrace资源

支持jdk11,请参阅小编文章:文章还未发表。请稍后关注。

2019-04-07

任务调度,任务调度,任务调度

简单的任务调度池。for循环往里面塞300W个任务不倒。

2011-07-16

java 反编译.java 反编译

右键点击.class文件,设置打开方式指向本exe文件即可直接打开。本文件还提供类名link功能。

2010-06-01

java 动态编译.java文件,动态运行类 _1.3

java 动态编译.java文件,动态运行类 _1.3

2010-04-15

java 动态编译.java文件,动态运行类 _1.2

java 动态编译.java文件,动态运行类 _1.2

2010-04-10

java 动态编译.java文件,动态运行类 _1.1

java 动态编译.java文件,动态运行类 _1.1

2010-04-05

java 动态编译.java文件,动态运行类

java 动态编译.java文件,动态运行类

2010-04-05

hiew 8.00 (英文版)

Hiew8.00 16DOS版进制文本编辑器

2010-02-08

hiew7.51英文绿色特别版

HIEWV7.51英文绿色特别版16进制编辑器特别的可以对应用程序进行反汇编

2010-02-08

html入门手册(必备)

html手册,html手册,html手册,html手册,html手册,html手册,html手册,html手册,html手册,html手册,html手册

2008-10-23

Loading加载动画

Loading加载动画, 有5个flash,东西不多,呵呵。

2008-09-12

LiferayPortal二次开发指南

liferayportal二次开发指南, 只讲解原理。代码很少。供学习

2008-09-12

js——表单验证大全

js表单验证大全, 自己从往上搜索的, 不是很全单很实用。

2008-09-12

javascript源码大全

javascript源码大全 代码不多,仅供参考

2008-09-12

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

TA关注的人

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