- 博客(66)
- 资源 (11)
- 收藏
- 关注
原创 protobuf
Protocol Buffers,是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,是一种轻便高效的结构化数据存储格式,它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。它不依赖于语言和平台并且可扩展性极强。现阶段官方支持C++JAVAPython、Objective C、C#、Ruby、PHP、JavaScript八种编程语言,还可以找到大量的几乎涵盖所有语言的第三方拓展包。
2024-04-30 14:44:28 666
原创 C++学习之指针和引用
例如,如果p是一个int类型的指针,每个int占4个字节,那么p - 1将指向p所指向的前一个int元素。所有指针的值的实际数据类型,不管是整型、浮点型、字符型,还是其他的数据类型,都是一样的,都是一个代表内存地址的长的十六进制数。不同数据类型的指针之间唯一的不同是,指针所指向的变量或常量的数据类型不同。是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。在C++中,引用经常与常量一起使用,以创建一个指向常量的引用,或者一个常量引用,这意味着不能通过引用修改它所引用的变量的值。
2024-04-28 15:53:37 1000
原创 计算机网络通信协议
此外,在应用层还有一些常见的协议,如HTTP(超文本传输协议)、SMTP(简单邮件传输协议)、MIME(多用途因特网邮件扩展)和IMAP(因特网消息访问协议)等。HTTP协议负责web服务器与web浏览器之间的通信;SMTP协议用于电子邮件的传输;MIME协议使SMTP有能力通过TCP/IP网络传输多媒体文件;而IMAP协议则用于存储和取回电子邮件。它通常与HTTP、FTP等应用层协议结合使用,形成HTTPS、FTPS等安全协议。TLS使用公钥加密技术来建立安全的连接,并保护数据的隐私和完整性。
2024-04-16 15:42:31 935
原创 MLOps
MLOps (Machine Learning Operations) 是一种新兴的概念,是“机器学习”(Machine Learning)和“DevOps”(Development and Operations)的组合实践。是指将 DevOps (Development and Operations)的理念和方法应用到机器学习的开发、部署、运维等各个环节,从而提高机器学习模型的生产效率和质量。MLOps 的概念起源于企业在实际应用机器学习时面临的困境,包括模型部署、运维、监控等方面的问题。
2024-04-15 15:48:21 718
原创 行遍历和列遍历
因此,行遍历在性能上通常优于列遍历,尤其是在处理大型二维数组或矩阵时。在遍历过程中,首先访问第一行的所有元素,然后移动到第二行,以此类推,直到遍历完最后一行的所有元素。在遍历过程中,首先访问第一列的所有元素,然后移动到第二列,以此类推,直到遍历完最后一列的所有元素。行遍历通常意味着连续的内存访问,因为二维数组在内存中是按照行优先的顺序存储的。列遍历则可能导致非连续的内存访问,因为需要跨越不同行来访问同一列的元素。行遍历是按行顺序访问元素,而列遍历是按列顺序访问元素。可以在下一章节看看。
2024-04-15 11:06:38 552
原创 Linux操作
通过nohup和&符号在后台执行命令后,即使你退出登录,这个命令也会一直执行。但是,你无法重新连接到这个会话,要想重新连接到这个会话,你可以使用screen命令。使用&符号在后台执行命令或脚本后,如果你退出登录,这个命令就会被自动终止掉。Linux的screen命令提供了分离和重新连接一个会话的功能。当你重新连接这个会话的时候,你的终端和你分离的时候一模一样。你可以在Linux命令或者脚本后面增加&符号,从而使命令或脚本在后台执行,例如:.下面的文章会给出详细解释:.
2024-04-12 11:08:52 424
原创 coredump
转载:https://blog.csdn.net/qq_43714097/article/details/130734858Core dump,也被称为核心转储,是当程序运行过程中发生异常导致异常退出或中止时,由操作系统生成的一个文件。这个文件保存了程序异常时的内存、寄存器、堆栈等数据,可以理解为程序工作当前状态的一个存储文件。Core dump文件通常包含了程序崩溃时的全部状态信息,包括用户空间的内存信息,如用户空间栈、代码段、数据段和堆等,但不包含内核空间栈的信息。
2024-04-10 11:20:56 728
原创 大规模并行算法编程
大规模并行算法编程涉及在多个处理单元(如CPU核心、GPU、FPGA或分布式系统中的节点)上同时执行算法的不同部分,以加速计算过程。这种编程方法在处理大规模数据集或执行复杂计算任务时特别有用。总之,大规模并行算法编程是一个涉及多个方面的复杂任务,需要深入理解算法、硬件和编程模型。通过合理设计并行算法和优化策略,可以显著提高计算性能和效率。
2024-04-08 15:07:47 319
原创 力扣100热题[哈希]:最长连续序列
官方解题思路是先去重,然后判断模板长度的数值是否存在,存在就刷新,最终找到最大值。这里我自己研究了下,实际也是暴力解法。纯暴力解法会超时,这里利用了二分法查找的理念。自己尝试了下,部分通过,有些边界值不太好控制,而且输入里面有负数,也不太好计算。
2024-03-22 10:27:13 369
原创 Linux版本
内核版本可以访问kerner.org查看或者下载所有的linux内核版本linux内核版本号是由3个数字组成第一个数字:主版本号,目前发布的内核的主版本,表示内核结构、功能等方面有重大升级第二个数字:次版本号,偶数表示稳定版本,奇数则表示在开发中的版本第三个数字:修订版本号,表示同一个内核次版本的不断修订和升级,就是错误修补的次数发行版本商业发行版:由商业公司维护,提供收费服务,如升级补丁等。
2024-03-20 10:25:27 404
原创 5GC SBA架构
协议标准:Directory Listing /ftp/Specs/archive/23_series/23.501/ (3gpp.org)
2024-03-01 16:58:12 1111
原创 说一说kong日志级别
通过调整error_log的配置,你可以控制错误日志的记录级别、日志文件的位置以及日志文件的滚动方式。有些场景,我们可能需要对kong进行调试,kong的默认日志级别是notice的,如果我们要查看info和debug级别的日志,可能就需要自己进行处理了。这样在运行的时候,debug级别日志就能打出来了。对着nginx、openresty、openssl的代码,进行问题的定位和分析,会很方便。除了指定日志文件或标准错误输出之外,你还可以使用error_log指令的附加选项来进一步定制错误日志的行为。
2024-02-29 19:10:29 1228
原创 基于Beego 1.12.3的简单website实现
参考作者写这个工具的时候,beego 2.0还没有发布,所以用的是beego 1.12.3,用2.0的同学,可以自己改造下。[TOC]
2024-02-29 15:53:44 1188
原创 JetBrains系列工具,配置PlantUML绘图
PlantUML是一个很强大的绘图工具,各种图都可以绘制,具体的可以去官网看看,或者百度。PlantUML语言是依赖进行解析的。Graphviz是开源图形可视化软件。本文介绍使用PyCharm配置PlantUML插件过程。
2024-02-26 20:28:07 774
原创 goland配置新增文件头
参考:goland函数注释生成插件GoLand 快速添加方法注释goland 如何设置头注释,自定义author和datagoland 设置新增文件注释模板。
2024-02-26 20:21:59 724
原创 Golang 常用工具安装命令
go get -v github.com/ramya-rao-a/go-outline go get -v github.com/acroca/go-symbols go get -v golang.org/x/tools/cmd/guru go get -v golang.org/x/tools/cmd/gorename go get -v github.com/josharian/impl go get -v github.com/rogpeppe/godef go get -v github.com/
2023-10-28 14:29:32 153
原创 vscode + CMake配置
目录配置基本vscode+c/c++开发环境安装cmake工具安装CMake插件CMake配置cmake使用配置基本vscode+c/c++开发环境参考https://blog.csdn.net/ZHAOJUNWEI08/article/details/83577195安装cmake工具可以在网上找下,安装windows版本的。安装CMake插件...
2019-09-03 19:34:10 5403 1
原创 基于C的日志系统
目录首先,我们需要定义一些枚举、宏、常量日志的级别另外,为了方便,我们可以自己定义一些类型其次,可以定义一些宏还需要定义一些东西,打印的时候需要:记录打印时间写日志文件写日志的宏扩展首先,我们需要定义一些枚举、宏、常量日志的级别typedef enum { LOG_LEV_DEBUG, //调试 LOG_LEV_INFO, /...
2019-02-25 20:11:09 797 1
原创 go语言实现的等价二叉树
package mainimport "code.google.com/p/go-tour/tree"import "fmt"// Walk 步进 tree t 将所有的值从 tree 发送到 channel ch。func Walk(t *tree.Tree, ch chan int) { transValue(t, ch) close(ch)}func transVal...
2019-02-01 14:45:16 527 1
原创 golang-web-crawler
package mainimport ( "fmt")type Fetcher interface { // Fetch 返回 URL 的 body 内容,并且将在这个页面上找到的 URL 放到一个 slice 中。 Fetch(url string) (body string, urls []string, err error)}// Crawl 使用 fetcher 从...
2019-02-01 10:44:35 444 1
原创 go rot13Reader,一个简单的加密
package mainimport ( "io" "os" "strings")type rot13Reader struct { r io.Reader}func rot13(b byte) byte { switch { case 'A' <= b && b <= 'M': b = b + 13 case 'M' < b ...
2019-02-01 10:41:36 513 1
原创 go语言map使用 单词计数
package mainimport ( "strings" "code.google.com/p/go-tour/wc")func WordCount(s string) map[string]int { //return map[string]int{"x": 1} m := make(map[string]int) // map对象 c := strings.Fiel...
2019-02-01 10:36:44 1318 1
原创 go语言slice切片以及生产base64的图片
利用slice切边生成了一个数组,然后将这个数组转成base64编码的图片,通过os.Create去生成图片。package mainimport ( "bytes" "encoding/base64" "fmt" "image" "image/png" "io" "math" "os")type alg_type i
2019-02-01 10:32:41 484 1
原创 golang语言牛顿法求平方根
package mainimport ( "fmt")// 作为练习函数和循环的简单途径,用牛顿法实现开方函数。// 在这个例子中,牛顿法是通过选择一个初始点 z 然后重复这一过程求 Sqrt(x) 的近似值:// z=z-(z*z-x)/2z// 为了做到这个,只需要重复计算 10 次,并且观察不同的值(1,2,3,……)是如何逐步逼近结果的。 然后,修改循环条件,使得当值停...
2019-02-01 10:25:38 1811
原创 go ServeHTTP的简单http_handles
package mainimport ( "fmt" "log" "net/http")type String stringtype Struct struct { Greeting string Punct string Who string}func (s String) ServeHTTP(w http.ResponseWriter, r *...
2019-02-01 10:20:34 2324 1
原创 go语言的斐波那契数列fibonacci
package mainimport "fmt"// 单纯的两个数字相加的函数func add(x, y int) int { return x + y}// fibonacci 函数会返回一个返回 int 的函数。func fibonacci(s1, s2 int) func() int { fmt.Println("fibonacci start with ", s1,...
2019-02-01 10:08:56 784 1
转载 linux内核中hlist_head和hlist_node结构解析
转自https://www.cnblogs.com/zafu/p/7412424.htmlhlist_head和hlist_node用于散列表,分表表示列表头(数组中的一项)和列表头所在双向链表中的某项,两者结构如下: 1 2 3 struct hlist_head { struct hlist_node *first; }; ...
2019-01-29 17:21:50 490
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人