自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 go实现素数筛选器

问题描述:素数是一个自然数,它具有两个截然不同的自然数除数:1和它本身。这里的问题是如何找到小于或等于给定整数n的素数。针对这个问题,我们可以采用埃拉托斯特尼素数筛算法。算法描述:先用最小的素数2去筛,把2的倍数筛除;下一个未筛除的数就是素数(这里是3)。再用这个素数3去筛,筛除3的倍数……这样不断重复下去,直到筛完为止。有[2,∞)的数据生产器。假设是[2,25]有一个素数为2的筛选器,负责筛掉能被2整除的,留下不能被2整除的数,这个数有可能是素数。

2023-11-19 21:47:19 133

原创 Go语言中New函数可以用来创建map吗

一个简单的面试题简单总结下,以及这种题怎么回答。new(T)可以为任意类型的数据分配内存,当使用new(T)创建引用类型时,引用类型初始化为nil,对于nil是不能被赋值的。这时需要使用make来初始化零值。make不仅可以开辟一个内存,还能给这个内存的类型初始化其零值。对于引用类型推荐使用make来创建。make和new的区别?make和new都是golang用来分配内存的内建函数,且在堆上分配内存,make即分配内存,也初始化内存。new只是分配内存,并没有初始化内存。

2023-11-16 12:15:42 168

原创 JWT续期方案

在使用JWT方案的过程中也是遇到了其他的问题,一一解决后,对jwt理解更清晰了。网上给到的方案也挺多的,我没有一一尝试,大家可以根据具体情况选择合适的方案使用。在项目中不考虑性能情况下,我只想简单实现,能颁发token,能续期,能正常过期,能退出登录就可以了。这个方案是遇到了问题,后来就演变成这个方案了。- 后端返回给前端一个生成的Token,前端存在本地Localstorage中,每次请求API放在Header中。Token的续期方案有很多,根据前后端自由搭配,自主设计只要没有bug,都没有问题。

2023-06-01 11:52:02 1067 2

原创 Goroutine泄露

记录一下go语言中常见的goroutine泄露。在内存管理方面,Go 为您处理了许多细节。Go 编译器使用逃逸分析决定值在内存中的位置。运行时通过使用垃圾收集器来跟踪和管理堆分配。尽管在您的应用程序中产生内存泄漏并非不可能,但这种可能性会大大降低。

2023-05-24 17:54:31 342

原创 go-gin 自定义应用metrics

最近有个需求,Prometeus要监控业务系统的运行时指标和业务指标,用来做数据分析和报表。运行时指标包括系统使用的cpu,内存,创建的goroutie等。业务指标包括数据库连接状态,Redis连接状态,IPFS连接状态,平台收入,平台支出及其他业务指标等。根据技术调研,gin框架默认支持与prometheus集成,会生成go运行时的metrics,也可以自定义metrics,下面来看下具体例子和业务应用。

2023-02-12 19:55:32 718

原创 go-casbin学习

casbin权限这一块做的挺全面,覆盖的权限模型基本上满足日常开发使用,包括RBAC,ABAC,ACL,Restful等模型。简单学习即可上手开发。熟练掌握各种模式,和casbin的api使用,在项目中可以解决权限的大部分问题。

2022-10-19 19:13:33 917

原创 go-viper实践

通过实践,viper能够满足本地环境和线上环境的无缝切换,自动识别环境变量。

2022-10-13 12:54:36 445

原创 GO结构体的内存布局

go结构体内存布局

2022-07-10 22:15:31 712

原创 Go语言的map设计

go语言数据结构map的设计

2022-07-07 19:12:08 231

原创 MongoDB聚合查询优化(二)

MongoDB聚合查询优化(二)问题界面list获取耗时 8s以上,用户无法忍受。数据量才5w问题分析1. 界面功能:根据name过滤根据author过滤根据tokenId过滤根据owner过滤根据created_at降序排列根据recycle_amount,amount,recycle_to判断状态分页2. 表结构EthNftMetatype EthNftMeta struct { Id primitive.ObjectID `bso

2022-05-31 15:59:50 1754

原创 mongodb 聚合查询优化(一)

MongoDB 聚合查询优化一、性能分析1. 参考文档https://developer.aliyun.com/article/777617https://blog.csdn.net/leshami/article/details/53521990?spm=a2c6h.12873639.article-detail.5.ec165124uwgMuO官方: https://www.mongodb.com/docs/manual/reference/explain-results/?spm=a2c6

2022-05-31 15:58:22 1056

原创 第四章 网络层

文章目录一、网络层服务二、数据报网络与虚电网络1. 数据报网络2. 虚电路网络三、数据互连与网络互连设备1. 异构网络互连2. 路由器四、网络层拥塞控制1. 网络拥塞2. 流量感知路由3. 准入控制4. 流量调节5. 负载脱落五、Internet网络层(重点)1. IPv4协议(Interet Protocol version 4)2. IPv4编址3. 动态主机配置协议4. 网络地址 转换5. ICMP(互联网控制报文协议)6. IPv6六、路由算法与路由协议1. 路由选择算法的分类2. 链路状态路

2021-11-24 11:35:33 796

原创 第六章 物理层

文章目录一、数据通信基础1. 数据通信基本概念2. 数据通信系统模型二、物理介质三、信道与信道容量四、基带传输五、频带传输六、物理层接口规程一、数据通信基础1. 数据通信基本概念消息和信息消息:人类能够感知的描述。 例如:眼镜看到的文字和图像;耳朵听到声音;鼻子闻到气味等。信息:消息中包含的有意义的内容。通信通信:在一点精确或近似地再生另一点的信息。 -------香农通信系统:能够实现通信功能的各种技术、设备和方法的总体。信号信号: 在通信系统中,信息在传输

2021-09-11 16:49:23 1148

原创 第五章 数据链路层与局域网

第五章 数据链路层与局域网数据链路层服务差错控制多路访问控制协议局域网点对点链路协议一、数据链路层服务概念数据链路层: 负责通过一条链路,从一个结点向另一个物理链路直接相连的相邻结点 ,传送网络层数据表报,中间不经过 任何 其他交换结点。数据链路: 网络中两个结点之间的逻辑通道。实现控制数据传输协议的硬件(网卡)和软件加到链路上构成的。数据链路层传输单元:帧。数据链路层提供的服务组帧帧头:发起结点和接受结点的信息地址、定界字符。帧尾:用于差错检测和差错编码。

2021-08-31 13:21:00 217

原创 VC++安装

文章目录前言一、VC++安装?二、使用步骤1. 打开VC6.0++,选择文件--新建。2. 新建一个控制台应用工程,命名为demo。3. 选择一个空的工程。4. 新建工程完毕后,再次新建。5. 新建一个C++源文件。6. Hello World7. 调试8. 排错总结前言重新学习高级语言程序设计,把曾经学过的C语言再捡起来一、VC++安装?vc++ 6.0下载解决win8.1环境兼容问题二、使用步骤1. 打开VC6.0++,选择文件–新建。2. 新建一个控制台应用工程,命名为d

2021-05-09 14:52:32 1802 1

原创 基于wasm的探索与研究(四)

AES加密算法性能对比上一篇文章分享了wasmer runtime,编译好的openssl.wasm文件可以独立运行,这篇文章分享openssl.wasm和原生openssl之间的性能对比。测试硬件主机MacBook ProCPU6-Core Intel Core i7 2.2 GHz/启动超线程内存16GB磁盘SSD测试软件OpensslLibreSSL 2.8.3Openssl WASMopenssl 版本 openssl 1.1.1d

2020-12-21 14:42:37 931

原创 基于wasm的探索与研究(三)

wasmer运行时上一篇文章分享了基于wasm的openssl实践,讲述了openssl的MD5算法如何在浏览器中执行。在探索过程中发现了openssl是可以通过wasm编译后直接run,并且有自己的runtime,这是因为openssl.wasm是通过wasmer编译运行的,这一篇文章分享制作具有运行时的openssl.wasm概述Wasmer介绍Openssl编译到WASM总结一、Wasmer介绍Wasmer是一个用于在服务器上执行WebAssembly的开源运行时。支持基于WebAs

2020-12-12 18:15:57 1634 2

原创 基于wasm的探索与研究(二)

基于wasm的openssl实践上一篇文章分享了WebAssembly概念和基本使用,通过两个代码示例的分析对WebAssembly有了大致的了解。这一篇文章分享的是基于WebAssembly的加密工具实践,我们就以openssl的摘要算法md5和sha1为例,在Mac上编译openSSL到WebAssembly。环境Emscripten 版本 2.0.3Openssl 版本1.1.1d浏览器 版本 85.0.4183.121(正式版本) (64 位)概述在Mac上编译openSSL到W

2020-12-07 12:02:31 1355

原创 基于wasm的探索与研究(一)

基于wasm的探索与研究(一)WebAssembly初探本次分享的文章是基于WebAssembly的探索与研究。由于最近一直在做加密相关的项目,有想法把高级语言实现的加密工具运行在浏览器中,恰好WebAssembly是为了一个可移植的目标而设计的,正好满足需求,顺便测试下通过WebAssembly编译后的加密工具性能。当然在研究WebAssembly的时候也遇到了各种问题,后面会和大家一起分享。这篇文章主要了解WebAssembly,以及WebAssembly基本使用方法。概述WebAssembly

2020-11-30 11:01:26 2432

空空如也

空空如也

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

TA关注的人

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