- 博客(127)
- 收藏
- 关注
原创 二十一、Rust 反射 获取类型
Any Trait 并非常规意义上的 Reflection,而最多是编译期反射、且只启用了 “类型检查” 和 “类型转换”,并不检查结构的任意内容。Any 符合零成本抽象,因为Rust只会针对调用该函数的相关类型生成代码,并且返回的是编译器内部的类型ID,没有额外开销;甚至可以直接使用,从而没有了dyn any的动态绑定开销。虽然 Rust 没有真正的 运行时 Reflection,但使用过程宏、仍可以实现大部分反射能够实现的功能,如上一节的 AOP 增强!!就这样,bye bye ~
2024-04-04 16:30:58
2339
1
原创 二十、Rust AOP 切面增强
通过syn和quote,可以在编译期,操纵整个 rust 代码的 AST 树,为功能编写、甚至框架封装,提供了更多可能!完事,拜了个 bye ~参考资料如何编写一个过程宏(proc-macro)Rust过程宏系列教程 | Proc Macro Workshop 之 Builder 实现Macro 宏编程。
2024-04-04 12:32:40
1555
原创 十九、Rust Tcp Rpc 示例
前一篇,我们演示了 rust grpc 的应用,但 grpc 是基于 http 的,按理说其协议更重,同时也确见到网友验证过,相比 http 的 rpc,tpc 下的 rpc 性能确实更有优势。 同时,不同于 grpc 要编写一份 “中间文件” (protobuf 文件),tcp rpc 可以认为是 直接 rust 到 rust 的编程,没有 “中间文件” 的编写,编写期代码提示,语法校验,都是原生的。因此,本篇也进行一个 tcp rpc 的演示。Tcp 版 rpc 方案不多,本例直接使用 tarpc
2024-04-04 12:29:06
959
2
原创 十八、Rust gRPC 多 proto 演示
创建 proto 目录,并声明相应的服务;由于网上的资料大多都是一个 proto 文件,而实际项目中基本上都是具有层级结构的;因此这里我也使用了多个 proto 文件来演示;在;而在和中都引入了他;
2024-04-02 11:40:34
1306
原创 1.5-数组-059. 螺旋矩阵 II★★
画每条边都要坚持一致的左闭右开、或左开右闭原则,这样一圈才能按照统一的规则画下来。所有元素,且元素按顺时针顺序螺旋排列的。中讲解的二分法,一定要坚持。由外向内一圈一圈画下去。
2024-03-28 15:51:55
437
原创 1.4-数组-209. 长度最小的子数组★★
并返回其长度**。**如果不存在符合条件的子数组,返回。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。
2024-03-27 16:35:16
286
原创 1.2-数组-027. 移除元素★
元素的顺序可以改变。不需要考虑数组中超出新长度后面的元素。不要使用额外的数组空间,必须仅使用。的元素,返回移除后数组的新长度。
2024-03-25 19:55:09
251
原创 十六、Vert.x、Actix-web、Warp、Axum 性能对比
本篇整理自国外大佬的一个视频,整理成文,方便随时查看。测试机,16核,32G内存。大佬进行了两种测试,下面分开整理。
2022-07-29 19:57:11
7444
3
原创 十五、Rust SeaFile
今天介绍一款笔者自己开源的,类似私有云的软件SeaFile。与时下其他私有云软件不同的是,不需要先搭建云平台,再由用户界面上传资料,才能进行资料的管理,SeaFile可以对已存在资料建立DB索引,并提供快速检索能力。...
2022-07-27 19:53:20
747
原创 十四、Rust ORM 框架
Rust下的orm,之前笔者介绍过sqlx,但使用中发现sqlx在进行参数绑定时,使用的是宏,在当前的IDE生态环境下,有时不能很好的进行代码提示,或代码跟踪,所以今天再介绍另一款rust下的orm工具。~......
2022-07-24 19:02:24
5081
原创 手撸布隆过滤器
一个低配版BloomFilterpublic class MyBloomFilter { // 后面hash函数会用到,用来生成不同的hash值,可以随便给,但别给奇数 private final int[] ints = {6, 8, 16, 38, 58, 68}; // 统计当前对象数量 private Integer currentBeanCount = 0; // 你的布隆过滤器容量 private int DEFAULT_SIZE = Integ
2021-12-21 23:21:44
419
原创 十三、Rust 借用、Struct、闭包 - 技巧与语法糖
1、引用与借用不可变的引用,就是借用。2、可变 + 不可变不可以同时出现可变 加不可变借用。以下两种,都是不可以的。let mut s = String::from("Hello World");let s3 = &mut s; // 这里是不可以的let s1 = &s;let s2 = &s;println!("{}, {}, {}", s1, s2, s3);let mut s = String::from("Hello World");let
2021-12-20 19:45:53
820
原创 MySQL时间格式化date_format
1、定义和用法DATE_FORMAT(date,format)2、可用的格式格式描述%a缩写星期名%b缩写月名%c月,数值%D带有英文前缀的月中的天%d月的天,数值(00-31)%e月的天,数值(0-31)%f微秒%H小时 (00-23)%h小时 (01-12)%I小时 (01-12)%i分钟,数值(00-59)%j年的天 (001-366)%k小时 (0-23)%l小时 (
2021-12-07 15:26:29
2235
原创 Fuchsia 的 Rust 代码占比超 50%
谷歌近日正式面向公众推出了 Fuchsia OS,获得 Fuchsia 1.0 推送的设备是第一代 Nest Hub。 与基于 Linux 内核的 Chrome OS 和 Android 等操作系统不同,Fuchsia 使用了全新的、自研的 Zircon 微内核,其采用 C++ 编写。内核的组件则使用到了 Go、Rust、Python,以及
2021-12-02 19:18:57
619
原创 LocalDateTime
从Java 8开始,java.time包提供了新的日期和时间API,主要涉及的类型有:本地日期和时间:LocalDateTime,LocalDate,LocalTime;带时区的日期和时间:ZonedDateTime;时刻:Instant;时区:ZoneId,ZoneOffset;时间间隔:Duration。以及一套新的用于取代SimpleDateFormat的格式化类型DateTimeFormatter。public class Main { public static void
2021-11-15 18:55:57
1649
原创 本地编写PlantUML并实时预览
经测,使用Sublime Text 3 加插件方案也并不完美,配置复杂,且要每次手动渲染。这里用Idea加插件方案,安装简单,实时预览。1、安装Graphviz图形渲染库brew install graphviz2、安装Idea插件3、创建测试文档 新建文件,并以 .puml 结尾,填入以下内容,command + s 保存,右侧
2021-11-03 20:44:50
1830
转载 开源OLAP引擎哪个快? (Presto、HAWQ、ClickHouse、GreenPlum)
现在大数据组件非常多,众说不一,在每个企业不同的使用场景里究竟应该使用哪个引擎呢?这是易观Spark实战营出品的开源Olap引擎测评报告,团队选取了Hive、Sparksql、Presto、Impala、Hawq、Clickhouse、Greenplum大数据查询引擎,在原生推荐配置情况下,在不同场景下做一次横向对比,供大家参考。每年易观都会发布一次这样的大数据开源测评报告,欢迎大家给出更好的测评意见以及想要测试的组件。易观Spark实战营是易观大数据技术团队组织的针对大数据初学者的实战训练营,欢迎搜索.
2021-11-03 17:31:58
1017
原创 mysql alter 语句用法:添加、修改、删除字段、索引、主键、调序等
修改表名:ALTER TABLE admin_user RENAME TO a_use增加主键alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id); 修改ID为自增,并设置为主键alter table brand_title_temp_noread modify id int auto_increment
2021-10-11 16:13:50
972
原创 限流之Guava RateLimiter
限流是保护高并发系统的三把利器之一,另外两个是缓存和降级。限流基础算法漏桶算法流入速度任意。流出速度固定。请求到来时,放入队列,出口侧按固定速度消费。无论积压多少请求,出口侧都按固定速度匀速处理。队列满时,阻塞、或丢弃。令牌桶算法。通过控制令牌生成速度,达到流量平稳。请求/调用 到达时,从桶拿取令牌,拿不到时,阻塞或丢弃。若消费方短暂中断,或某个处理比较耗时,而积累了令牌,则可能产生一波突发处
2021-08-25 16:47:06
224
原创 常见服务注册中心
名称优点缺点接入算法zookeeper1.功能强大,不仅仅只是服务发现。2.提供watcher机制能实时获取服务提供者的状态。3.dubbo等框架支持1.没有健康检查2.需在服务中集成sdk,复杂度高3.不支持多数据中心。sdkPaxosconsul1.简单易用,不需要集成sdk。2.自带健康检查。3.支持多数据中心。4.提供web管理界面1.不能实时获取服务信息的变化通知。http/dnsRaftetcd1.简单易用,不需要集成sdk。2.可配置性强...
2021-08-19 19:19:32
672
原创 Java8巧用Function做统一任务分片
利用 Function 在业务方法之外,用 Lists.partition(idList, 100) ,进行统一分片。 /** * 统一分片查询,按200切分 * * @param idList * @param function * @param <T> * @return */ public <T> List&l
2021-06-05 17:12:23
372
原创 Maven Password 加密
maven配置server时对password进行加密1.需求因为公司的编译服务器部署在了阿里云上,需要在编译完成后上传编译后的aar文件到公司maven私服上,普通的maven部署方式是把maven私服的账号密码以明文的方式配置在settings.xml文件中<server> <id>deploymentRepo</id> <username>admin</username> <password&g
2021-05-27 14:12:46
1405
原创 Collectors.toMap冲突处理
1、用后面的 value 覆盖前面的Map<String, String> map = list.stream.collect(Collectors.toMap( Student::getName, Student::getAge, (value1, value2) -> value2));2、将重复 key 的 value 进行拼接Map<String,String> map = list.stream.collect(Collectors.toMap
2021-05-27 11:17:42
4887
转载 国产化数据库 Pgsql tidb和oceanbase 的区别
Pgsql一、 PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。二、任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显出现一个波峰后下滑(5.5版本之后,在企业级版本中有个插件可以改善很多,不过需要付费)。三、PG
2021-04-30 14:59:30
3843
1
原创 RabbitMQ —— 六、RabbitMQ与其他MQ产品的对比
RabbitMQ —— 六、RabbitMQ与其他MQ产品的对比 消息中间件现在有不少,网上很多文章都对其做过对比,这里对他们做一些整理,主要包含:Kafka、RabbitMQ、RocketMQ、ZeroMQ(ZMQ)等消息中间件的对比。RocketMQ 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,
2021-04-23 23:47:07
2223
原创 Neo4j性能测试
测试环境 3台节点,每台cpu和内存都差不多CPU[root@f1 import]# lscpuArchitecture: x86_64CPU op-mode(s): 32-bit, 64-bitByte Order: Little EndianCPU(s): 40On-line CPU(s) list: 0-3
2021-04-23 19:40:42
3376
1
原创 CompletableFuture allOf supplyAsync thenApplyAsync 并行、链式、时序关系
@SneakyThrows private void test() { CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> { return "任务A"; }).thenApplyAsync(s -> { System.out.println(s); return "任务B"; .
2021-04-08 17:13:50
3990
2
原创 Java响应式编程框架
响应式,直白点理解,就是当数据准备好了,再通知我(函数),有时会觉得与回调很像。代表框架:Spring Webflux、Vert.x、quack
2021-04-07 11:51:08
1821
原创 Java GC日志收集
说结论,有两种方法一、JVM启动时 Jvm 启动时,添加参数: -Xlog:gc*:file={file-path} 二、Jstat加进程号 优势,可在JVM运行时,无需任何先决条件的情况下动态捕获GC 指标,说白了就是 jvm 启动后,再去获取。  .
2021-03-31 17:20:58
344
1
原创 深度学习与机器学习
笔者也是刚入门,从好友那里咨询到一大堆的信息,自己还形不成体系,特此记录一下,以免忘记,并对文章持续修正、升级。 感谢吾的好友: 万能宝宝 。不辞辛劳,对一个门外汉,长时间的入微讲解。铭感五内,万分感激。????机器学习:识别一张图片是否属于哪一类别,类别是人为提前划定好的,会用到 贝叶斯 算法。深度学习:识别是否
2021-03-27 22:47:42
170
原创 图数据库排名、对比
数据库评分排行网站:db-engines。对比点Neo4jJanusGraphHugeGraph知名度最高高国内高Neo4J和JanusGraph比较特性\数据库名称Neo4jJanusGraph是否开源社区版开源,企业版收费完全开源第一版发行时间2007年2016年12月【基于TitanDB[2012]】技术特点一站式服务、工具齐全需要开
2021-03-26 11:24:53
14481
2
原创 Neo4j官方示例数据库
使用官方示例数据库脚本:CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})CREATE (Carrie:Person {name:'Carrie-Anne Moss',
2021-03-23 18:59:36
954
原创 Docker 安装 Neo4j
开始安装cd ~cat > neo4j.sh << EOFdocker pull neo4jdocker run -it -d --publish=7474:7474 --publish=7687:7687 --volume=$HOME/neo4j/data:/data --name neo4j neo4jEOFchmod +x neo4j.sh && ./neo4j.sh&
2021-03-22 21:49:04
546
原创 Java 项目集成 Kotlin
GradleMaven 为了使构建更快,可以为 Maven 启用增量编译(从 Kotlin 1.1.2 起支持)。 为了做到这一点,需要定义 kotlin.compiler.incremental 属性,或者使用 -Dkotlin.compiler.incremental=true 选项运行构建。: <properties> <kotlin.version>1.4.31<
2021-03-21 17:35:14
2571
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人