FFI FFI(Foreign Function Interface)是这样一种机制:用一种编程语言写的程序能调用另一种编程语言写的函数(routines)。 调用约定,类型表示和名称修饰这三者的统称,即是众所周知的应用二进制接口(ABI)。 如果所有的语言在调用时都能认识同样一套 ABI 规范,那么就能完全畅通的调用了。可惜,世界不会像我们人为想象的那样干净。 在计算机技术发展的过程中,出现了各种 ABI 规范: cdeclsyscalloptlinkpascalregisterstdcall
2024-11-21聊聊Mysql索引和redis跳表 ---redis的有序集合zset数据结构底层采用了跳表原理 时间复杂度O(logn)(阿里) redis使用跳表不用B+数的原因是:redis是内存数据库,而B+树纯粹是为了mysql这种IO数据库准备的。B+树的每个节点的数量都是一个mysql分区页的大小(阿里面试) 敲黑板: 每级遍历 3 个结点即可,而跳表的高度为 h ,所以每次查找一个结点时,需要遍历的结点数为 3*跳表高度 ,所以忽略低阶项和系数后的时间复杂度就是 ○(㏒n),空间复杂度是O(n)
2024-11-21递归实现阶乘计算 object Lambda { def main(args: Array[String]): Unit = { def fact(n: Int): Int = { if (n == 0) return 1 fact(n - 1) * n } } } 这样处理虽然可以实现,但显然会出现一个问题,如我计算1024的阶乘,即fact(1024),在完成最后一步前,fact1024-fact1所占用的资源和其入栈的局部变量
2024-11-21所有权是Rust最独特的特性,它让Rust无需GC就可以保证内存安全,这个概念是非常重要的,Rust的核心特性就是所有权,所有的程序在运行时都必须管理它们使用计算机内存的方式 有些语言有GC、在程序运行时,它们会不断地寻找不再使用的内存,例如JavaScript这样的语言,还有一些语言,程序员必须显式的分配和释放内存,例如C语言等 而Rust采用了第三种方式,没错就是所有权,Rust内存是通过一个所有权系统来管理的,其中包含一组编译器在编译时检查的规则,当程序运行时,所有权特性不会减慢程序的运行
2024-11-21Spring Boot集成EasyExcel实现excel导入导出操作 0 简要说明 简单使用 引入依赖 <!--easyexcel--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>3.1.1</version> </dependency>
2024-11-21你好,golang func initLog() { logger.SetLogLevel(config.Config.LogLevel) if config.Config.SentryDsn != "" { hooks.SetEnableSentry() hooks.SetSentryDSN(config.Config.SentryDsn) } logger.SetAppName(config.Config.AppName) logger.SetLogPath(config.
2024-11-21随着大型语言模型(LLM)及其相关工具(如嵌入模型)在过去一年中能力显著提升,越来越多的开发者考虑将LLM集成到他们的应用程序中。 由于LLM通常需要专用硬件和大量计算资源,它们通常作为网络服务打包,提供API供访问。这就是OpenAI和Google Gemini等领先LLM的API工作方式;即使是像Ollama这样的自托管LLM工具,也将LLM封装在REST API中以供本地使用。此外,利用LLM的开发者通常还需要补充工具,如向量数据库,这些数据库大多也作为网络服务部署。 换句话说,LLM驱动
2024-11-21vue前端通过request请求后台接口时,url路径错误导致后台报错,原因是将url中的“listStoreOption”作为一个get请求参数来解析了,没有作为路径,因为在后台也没有正确处理对应请求的路径,异常详情如下: 15:43:05.852 [http-nio-8080-exec-20] ERROR c.r.f.w.e.GlobalExceptionHandler - [handleException,83] - Failed to convert value of type 'jav
2024-11-21开发环境 Windows 10Rust 1.65.0 VS Code 1.73.1 项目工程 这里继续沿用上次工程-demo 用字符串存储UTF-8编码的文本 我们在之前的章节中讨论了字符串,但现在我们将更深入地研究它们。新的Rust人会因为三个原因而陷入字符串:Rust倾向于暴露可能的错误,字符串是比许多程序员认为的更复杂的数据结构,以及UTF-8。当您来自其他编程语言时,这些因素以一种看起来很困难的方式结合在一起。 我们在集合的上下文中讨论字符串,因为字符串是作为字节的集合实现
2024-11-21一、快速上手Springboot 1.1、Springboot入门程序开发 1.1.1、IDEA创建Springboot项目 SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程 //Rest模式 @RestController @RequestMapping("/books") public class BookController { @GetMapping public String getById(){
2024-11-21