多年 内存rust

JUC1_谈谈Volatile1_Volatile和JMM内存模型的可见性

JUC(java.util.concurrent) 进程和线程 进程:后台运行的程序(我们打开的一个软件,就是进程) 线程:轻量级的进程,并且一个进程包含多个线程(同在一个软件内,同时运行窗口,就是线程) 并发和并行 并发:同时访问某个东西,就是并发 并行:一起做某些事情,就是并行 JUC下的三个包 ......

内存对齐

1、什么是内存对齐 还是用一个例子带出这个问题,看下面的小程序,理论上,32位系统下,int占4byte,char占一个byte,那么将它们放到一个结构体中应该占4+1=5byte;但是实际上,通过运行程序得到的结果是8 byte,这就是内存对齐所导致的。 //32位系统 #include<stdi ......
内存

关于vite项目内存溢出无法正常打包的问题

问题 在vite+ts+vue3项目中时pnpm run build构建项目导致无法正常打包 解决思路 排查问题时发现禁用router插件后能正常打包,禁用掉则会导致溢出。 进一步发现是因为.vue文件过多的原因。 考虑到可能是nodejs默认的内存不够,增大内存试试。增加到24GB后可以成功打包。 ......
内存 项目 问题 vite

innodb的体系结构(内存篇二)

本篇文章介绍同在内存结构中的另一个缓冲池“change buffer”和“log buffer” “change buffer”在innodb的1.0版本之前叫“insert buffer”主要用于辅助索引(二级索引,非聚簇索引)的dml操作。 什么是“聚簇索引”和“辅助索引”,聚簇索引就是选择主键 ......
体系结构 内存 体系 结构 innodb

innodb的体系结构(内存篇一)

上图innodb存储引擎的架构引用官方手册,从上图来看关于架构的相关功能看起来很复杂,实际上也确实很复杂。为了方便理解我用黄红绿三个框稍微给归纳一下,分成三个部分。 简单的概括一下,当然没有很全面。 黄框是关于内存方面的功能; 红框是将数据从内存落实到硬盘的相关功能; 绿框是硬盘表空间的相关功能; ......
体系结构 内存 体系 结构 innodb

Pake 基于rust 开发的快速web 页面打包app 的工具

Pake利用了tauri 可以实现web 页面快速打包桌面app 说明 对于希望快速打开一个桌面应用的场景,Pake 还是值得试用的 参考资料 https://github.com/tw93/Pake ......
页面 工具 Pake rust app

Rust编程语言入门之智能指针

智能指针 智能指针(序) 相关的概念 指针:一个变量在内存中包含的是一个地址(指向其它数据) Rust 中最常见的指针就是”引用“ 引用: 使用 & 借用它指向的值 没有其余开销 最常见的指针类型 智能指针 智能指针是这样一些数据结构: 行为和指针相似 有额外的元数据和功能 引用计数(Referen ......
编程语言 指针 语言 智能 Rust

内存相关

redis 中的info 指标 # redis 中key-value使用的内存量 used_memory:2709112 used_memory_human:2.58M # 从操作系统层面redis 内存占用量 used_memory_rss:5378048 used_memory_rss_huma ......
内存

2023年Rust发展如何?

1. 引言 Rust是一种系统编程语言,它注重安全、并发和内存效率。自2010年首次发布以来,Rust一直在快速发展,吸引了越来越多的开发者加入其社区。Rust语言的设计目标是提供一种安全、并发和实用的语言,它可以满足系统编程的需求,同时也适用于其他领域。 2. Rust在2022年的发展趋势 在2 ......
2023 Rust

Rust中的derive属性详解

1. Rust中的derive是什么? 在Rust语言中,derive是一个属性,它可以让编译器为一些特性提供基本的实现。这些特性仍然可以手动实现,以获得更复杂的行为。 2. derive的出现解决了什么问题? derive属性的出现解决了手动实现一些特性时需要编写大量重复代码的问题。它可以让编译器 ......
属性 derive Rust

C++中的虚函数表实现机制——对于虚表的内存布局讲解得非常好

C++中的虚函数表实现机制 摘自:https://blog.twofei.com/496/ 前言 大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是 ......
函数 布局 机制 内存

内存对齐详解 (C++代码)

内存对齐详解 (C++代码) 我每天都有读一下面经的习惯,从里面抽一些我不太懂的内容使用 dfs 的思想去探索,感谢有了GPT4,探索之路变得有趣和高效许多。 今天这个 Topic 如下,是腾讯日常实习面经中的内容 编译内存相关: C++内存管理,分了多少段,在堆上和在栈上的区别,为什么要区分堆和栈 ......
内存 代码

Delphi FDMemTable内存表用法及简单操作函数封装(转)

在某些场景下当轻量级的应用需要在内存中缓存数量比较多且字段比较多的高频使用数据时。以前我都是采用Ini或直接使用sqlite数据库。JSON也试过基本无法或很难实现需要的功能,因为当涉及某一同类型对象多字段多列时不通过遍历基本无法直接取到或修改数据。这样就导致了效率的低下。比如你在写一个多任务多线程 ......
FDMemTable 函数 内存 Delphi

Moves, copies and clones in Rust

原文链接:Moves, copies and clones in Rust 简介(Introduction) move 和 copy 是 Rust 中的基础概念。这对于来自 Ruby、Python 或 C#等垃圾回收语言的程序员来说可能是完全陌生的。这些术语在 C++中也确实存在,但它们在 Rust ......
copies clones Moves Rust and

MFC-memcpy内存区域复制

TCHAR s[] = _T("我是李明"); TCHAR d[20]; memcpy(d, s, _tcslen(s) * sizeof(TCHAR)+2); //功能:由s所指内存区域复制count(参数3)个字节到d所指内存区域 ......
MFC-memcpy 内存 区域 memcpy MFC

rust模式匹配(可驳模式匹配与不可驳模式匹配)

rust的一个特性就是模式匹配(OOP编程语言好像都有?),模式匹配常常和变量绑定一起考虑 常见的模式匹配有: match、if let、while let、let、for、函数参数等等 (for和let我个人认为说是模式匹配,其实有点牵强了,除非这样let (x,y) = (1,2) 可驳与不可驳 ......
模式 rust

文盘Rust -- 用Tokio实现简易任务池

Tokio 无疑是 Rust 世界中最优秀的异步Runtime实现。非阻塞的特性带来了优异的性能,但是在实际的开发中我们往往需要在某些情况下阻塞任务来实现某些功能。 ......
简易 任务 Tokio Rust

JVM的内存分配及各种常量池的区别(静态常量池、运行时常量池、字符串常量池)

JVM内存分配 先了解下JVM中的内存分配,此处以hotspot vm为例(官方jdk采用的vm) 程序计数器 栈 1. 虚拟机栈 2. 本地方法栈 Java堆 堆内存是各个线程共享的区域 方法区 它用于存储已经被虚拟机加载的类信息、常量、静态变量、即编译器编译后的代码等数据。静态变量、常量在方法区 ......
常量 字符串 静态 字符 内存

jvm 内存结构

jvm 内存结构和 java 内存模型不是同一个东西 | 线程私有 | 线程共享 | | | | | 程序计数器 | 堆 | | 虚拟机栈 | 方法区 | | 本地方法区 | 堆外内存(Java7的永久代或JDK8的元空间、代码缓存) | 程序计数器 也叫 PC 寄存器,存储下一条程序行号(严格是机 ......
内存 结构 jvm

rust数组

概述 rust中数组分为两类: 长度固定的array 动态数组vector array的效率比vector高,array存栈上,vector存堆上 array fn main() { // [类型;长度] let a: [i32; 5] = [1, 2, 3, 4, 5]; } 数组元素类型要统一, ......
数组 rust

贴图运行内存占用计算

以128x128的图片为例 1) 没有任何压缩的格式,RGBA 32bit=128x128x(32bit/8)=64kb,勾上MipMap会变成85.3kb 2) RGBA Compressed ETC2 8bits=128x128x(8bit/8)=16kb,勾上MipMap会变成21.4kb 3 ......
内存 贴图

Semantic Kernel 入门系列:🥑Memory内存

了解的运作原理之后,就可以开始使用Semantic Kernel来制作应用了。 Semantic Kernel将embedding的功能封装到了Memory中,用来存储上下文信息,就好像电脑的内存一样,而LLM就像是CPU一样,我们所需要做的就是从内存中取出相关的信息交给CPU处理就好了。 内存配置 ......
Semantic 内存 Kernel 129361 Memory

如何查看Linux的内存使用状况

导读 我想要监测Linux系统的内存使用状况。有哪些可用的图形界面或者命令行工具来检查当前内存使用情况? 当涉及到Linux系统性能优化的时候,物理内存是一个最重要的因素。自然的,Linux提供了丰富的选择来监测珍贵的内存资源的使用情况。不同的工具,在监测粒度(例如:全系统范围,每个进程,每个用户) ......
状况 内存 Linux

JVM:内存结构上

!点击代码高亮化! jvm内存结构·上 程序计数器 虚拟机栈(线程私有栈-方法的栈帧\FILO) 当前线程的压入的方法的栈帧 -Xss"SIZE": 设置线程栈大小 栈内存溢出 SO:StackOverflowError at '错误代码处' 递归调用 有时第三方库也会导致SO:ObjectMapp ......
内存 结构 JVM

Linux程序内存释放不回收问题

最近在测试一个程序,内存表现很诡异,记录一下。 测试环境:vmware虚拟机,操作系统:ubuntu 16.04 x64 程序中有一段业务需要申请大块内存,业务完成后再释放掉。 测试表现:程序启动占用内存约90M,执行一次业务后,内存增长约200M,且不回落,这样约5次后,内存增长到约1G后趋于稳定 ......
内存 程序 问题 Linux

JVM 内存

简述JVM 内存模型 从宏观上来说JVM 内存区域 分为三部分线程共享区域、线程私有区域、直接内存区域。 1.1、线程共享区域1.1.1、堆区 堆区Heap是JVM中最大的一块内存区域,基本上所有的对象实例都是在堆上分配空间。堆区细分为年轻代和老年代,其中年轻代又分为Eden、S0、S1 三个部分, ......
内存 JVM

向下取整内存与运行时间

Math.floor虽然为js的内置函数库,但还是会存在调用函数库的问题,但parseInt为javascript的内置函数,并不会存在调用函数库这种操作,所以就结果而言使用parseInt向下取整会比Math.floor占用更少的内存以及更快的运行时间。 使用parseInt 使用Math.flo ......
内存 时间

Rust 版本一直是 1.4 或者其它版本

Rust 版本一直是 1.4 或者其它版本 通过rustup update 升级或者 rustup default 设置版本也不行 解决方法 删除 rust-toolchain 这个东西,这个东西覆盖了 ......
版本 Rust 1.4

Rust中的迭代器的使用:map转换、filter过滤、fold聚合、chain链接

什么是迭代器 Rust中的迭代器是一种强大的工具,它提供了一种灵活、通用的方法来遍历序列。迭代器是实现了Iterator trait的类型,并需要至少实现一个next函数,用于让迭代器指向下一个迭代对象,并返回一个Option用于指示对象是否存在。 fn next (&mut self) -> Op ......
链接 filter chain Rust fold

记首次用Cheat Engine修改游戏内存

记得第一次见到ce修改器还是因为听闻ce修改器可以修改百度网盘下载速度,但是测试了一下发现确实可行(虽然不知道现在修复了没)。最近想起来得好好研究它的功能。 最后我发现了了一片讲的很细的[CE修改器教程入门篇](https://bbs.kanxue.com/thread-276049.htm),作者 ......
内存 Engine Cheat