多年 内存rust

04_rust的数据类型

数据类型 有 标量和复合类型 rust是静态编译语言,需在编译时知道所有变量的类型。 1)通常基于变量上下文使用的值,编译器能推断出具体类型。 2)若可能的类型存在多种,则需手动标注,如下例子。 let d: u32 = "56".parse().expect("not a num"); // 因为 ......
类型 数据 rust 04

红蓝对抗以及护网相关工具和资料|内存马查杀工具

红蓝对抗以及护网相关工具和资料,内存shellcode(cs+msf)和内存马查杀工具 文件列表 RedTeam_BlueTeam_HW RedTeam_BlueTeam_HW | │ .gitattributes │ .gitignore │ hostnamePot.jar │ hw相关项目.md ......
工具 内存 资料

微软开源 windows-drivers-rs,用 Rust 开发 Windows 驱动程序

Microsoft Azure 首席技术官兼著名 Windows 软件开发人员 Mark Russinovich 在社交平台上宣布,启动了一个名为 windows-drivers-rs 的新开源项目。 该项目可帮助开发人员使用 Rust 开发 Windows 驱动程序,旨在支持 WDM (Windo ......

Rust Clap库学习

Clap学习 本片内容主要参考clap的官方文档 在使用Rust的库之前, 首先需要添加clap库: cargo add clap --features derive 其他派生clap::_features - Rust (docs.rs) 运行这个命令行会在Cargo.toml中添加 clap = ......
Rust Clap

rust HashMap 排序

按照key和value升序、降序、自定义排序示例 use std::collections::HashMap; use std::cmp::Ordering; fn main() { let mut df = HashMap::new(); for x in 5..=12 { let k = for ......
HashMap rust

C++ - 内存管理

本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。 1 内存分区模型 C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等 堆区 ......
内存

《Mastering the FreeRTOS Real Time Kernel》读书笔记(1)堆内存管理

这是161204的版本,不完全覆盖目前最新版本的内核。 0.关于freeRTOS 首先提出了了在小型嵌入式系统中为何需要多任务管理的问题,介绍了freeRTOS的用途。然后开始做广告,吹了一波freeRTOS的好处。其中要注意一些关键的名词:任务优先级分配、任务通知、队列、信号量、互斥锁、软定时器、 ......
Mastering FreeRTOS 内存 笔记 Kernel

在CentOS上,查看CPU、内存和磁盘的指标命令

1. 查看CPU指标: 使用lscpu命令来获取CPU信息,例如: lscpu 使用top命令来实时查看CPU使用率和其他相关信息,例如: top 使用mpstat命令来查看CPU使用率统计信息,例如: mpstat 2. 查看内存指标: 使用free命令来查看系统内存的使用情况,例如: free ......
磁盘 命令 内存 指标 CentOS

从内核世界透视 mmap 内存映射的本质(源码实现篇)

本文基于内核 5.4 版本源码讨论 通过上篇文章 《从内核世界透视 mmap 内存映射的本质(原理篇)》的介绍,我们现在已经非常清楚了 mmap 背后的映射原理以及它的使用方法,其核心就是在进程虚拟内存空间中分配一段虚拟内存出来,然后将这段虚拟内存与磁盘文件映射起来,整个 mmap 系统调用就结束了 ......
内核 源码 本质 内存 世界

JVM之内存模型

前言 首先说明下JVM内存模型和Java内存模型这是两个不同的概念,不要搞混淆了。 JVM内存模型定义了Java程序在运行时如何分配、使用和释放内存,跟存储和执行相关,也就是常说的运行时数据区域。 Java内存模型(Java Memory Model,简称 JMM)是一种规范,定义了线程和主内存之间 ......
模型 内存 JVM

BenchmarkDotNet-显示内存

在基准测试中, 除了运行耗时之外, 使用内存也是一项比较重要的指标, 下面介绍一下如何在最终的结果中展示内存方面的使用情况 // 由于现在需要展示内存方面的指标, 原来的字符串判空由于使用内存较少, 不适合用来做测试 // 因此定义了以下拥有相同属性的结构体和类 public struct SMod ......
BenchmarkDotNet 内存

02_rust配置国内源

配置rust的国内源: linux下: vim ~/.cargo/config windows:c盘/用户/用户名/.cargo/config 如果没有config文件,创建一个即可。 增加源链接,在[source.crates-io]下增加replace-with = 'xxx' [source. ......
rust 02

Rust cargo常用命令

目录设置国内镜像创建新项目构建项目运行项目检查项目,但不构建可执行文件运行项目的测试发布项目更新依赖查看项目依赖关系树创建新的库项目文档生成 设置国内镜像 cd ~/.cargo # 创建config文件 vim config # 添加如下镜像源 [source.crates-io] registr ......
命令 常用 cargo Rust

Rust安装及学习资料

目录官网包管理Rust 程序设计语言通过例子学 Rust在线运行安装rustup升级Rust卸载Rust创建项目 官网 https://www.rust-lang.org/zh-CN/ 包管理 https://crates.io/ Rust 程序设计语言 https://kaisery.github ......
学习资料 资料 Rust

Rust Druid桌面应用框架

目录Github管方文档简介声明式 UI数据绑定高性能可扩展性跨平台事件处理生命周期管理社区支持添加依赖官方示例下载依赖并编译运行 Github https://github.com/linebender/druid 管方文档 https://docs.rs/druid/latest/druid/ ......
框架 桌面 Druid Rust

Rust actix-web框架

目录Github官方文档添加依赖官方示例下载依赖并编译运行 Github https://github.com/actix/actix-web 官方文档 https://actix.rs/docs/getting-started 添加依赖 [dependencies] actix-web = "4" ......
actix-web 框架 actix Rust web

ClickHouse内存配置参数

1.max_memory_usage运行单个查询时使用的最大内存量。默认设置为无限(设置为 0)。该设置不考虑可用内存容量或机器上的内存总量。该限制适用于单个服务器中的单个查询。你可以使用SHOW PROCESSLIST查看每个查询的当前内存消耗。此外,每次查询的内存消耗峰值都会被跟踪并写入日志。某 ......
ClickHouse 内存 参数

防止strcpy/strncpy内存溢出的my_strncpy

my_strncpy: 1 char *my_strncpy(char *dest, const char *src, size_t size) 2 { 3 if (size <= 0) 4 return dest; 5 6 dest[--size] = '\0'; 7 8 return strnc ......
strncpy my_strncpy 内存 strcpy my

C++在HotSpot VM中一种巧妙的内存管理方式

在HotSpot VM中定义了一个Relocation类及相关的子类,可以通过这些类操作不同的重定位数据,如在CodeCache中读写这些数据。这些类需要的内存很小,但是不同的类需要的内存大小又不一样,所以做了如下的设计: #include <cstdlib> #include "iostream" ......
内存 HotSpot 方式

Arm Linux内存管理(一)

Arm Linux内存管理(一) 大文 2 人赞同了该文章 一、Arm linux的基本概念 1. Arm Linux物理内存 Arm平台内存大小的定义在DTS设备树中定义 arch/arm/boot/dts/vexpress-v2p-ca9.dts中 内核在启动过程中,需要解析dts文件。代码的调 ......
内存 Linux Arm

用程序小小11孩岁女A片㓜或操作系统使用的逻辑地址式与具体的内存管理单元(MMU)的实现有关式与具体的内存管理

在ARM架构中,块地址是物理地址的一部分,用于标识cache中存储数据的物理位置。索引(index)是用于确定cache行对应的物理地址的部分,而标记(tag)则用于标识cache行中所存储数据的虚拟地址。当CPU访问虚拟地址时,硬件会根据虚拟地址与索引掩码进行按位与(AND)操作,得到索引,然后使 ......
内存 单元 逻辑 地址 程序

内核态内存的正确使用方法

前言 看完了伙伴系统的设计、slab分配器的设计、vmalloc、kmalloc这些内容对于内存管理的一些细节上好像比较清楚了,但是内核是如何使用内存的还是有一些混淆。也产生了一些疑问,在内核中内存的正确打开方式是什么呢? 内核地址空间划分 首先我们需要搞情况内核的地址空间,不同地址空间的内存的使用 ......
内核 使用方法 内存 方法

python查看占用系统内存

import os import psutil print(u'cpu个数:',psutil.cpu_count()) print(u'电脑总内存:%.4f GB' % (info.total / 1024 / 1024 / 1024)) print(u'当前进程的内存使用:%.4f GB' % ( ......
内存 python 系统

内存管理中的关键数据结构

前言 在谈Linux内存管理框架之前需要了解NUMA,NUMA是非一致性内存访问(Uon-Uniform Memory Access)的缩写,与之相反的是一致性内存访问UMA。在多核的UMA架构的机器上,CPU视角下所有的内存都是均匀的,不同CPU访问同一块内存的延迟是相同;而在NUMA架构的机器上 ......
数据结构 内存 关键 结构 数据

迁移类型与内存碎片

前言 在伙伴系统中长时间的内存分配之后很容易造成内存碎片,即物理内存总量不少但是无法合并为大的连续内存块。而在现代CPU中提供了huge page的可能,可以分配超大块的page,在TLB中使用更少级的地址转换操作。一个page覆盖了更大的地址范围,大幅度的提高了TLB的命中概率。对于内存密集型应用 ......
碎片 内存 类型

8. 用Rust手把手编写一个wmproxy(代理,内网穿透等), HTTP改造篇之HPACK原理

用Rust手把手编写一个wmproxy(代理,内网穿透等), HTTP改造篇之HPACK原理 项目 ++wmproxy++ gite: https://gitee.com/tickbh/wmproxy github: https://github.com/tickbh/wmproxy HTTP/2的 ......
原理 wmproxy HPACK Rust HTTP

基于 Linux、C++实现的高性能内存池

1.引入内存池的意义 内存池(Memory Pool)是一种内存分配方式,又被称为固定大小区块规划(fixed-size-blocks allocation)。通常我们习惯直接使用new、malloc等API申请分配内存,但是这种方式非常容易产生内存碎片,早晚都会申请内存失败。并且在比较复杂的代码或 ......
高性能 内存 Linux

伙伴系统(四)内存释放流程

前言 伙伴系统的内存释放API分析,基于Linux 2.6.25。 对外封装的内存释放API分为两类,free_page和free_pages以虚拟地址为参数,__free_page和__free_pages以page指针为参数,可以使用virt_to_page实现虚拟地址到page指针的转化,最终 ......
流程 内存 伙伴 系统

伙伴系统的内存分配流程

前言 伙伴系统的内存分配API解析,基于Linux 2.6.25。 GFP_MASK GFP是get free page的缩写,GFP_MASK是一系列内存分配的掩码,指导伙伴系统寻找合适的内存块进行分配,同时在分配过程中按照掩码的指示进行内存相关的操作,比如内存回收、分配失败后的行为等。 以下四个 ......
流程 内存 伙伴 系统