多年 内存rust

结构体强制转换导致的内存对齐问题

在开发ethercat协议栈邮箱通讯的过程中遇到一个BUG,主站协议栈传过来的邮箱数据包是正确的,但是到FOE服务处理时,使用结构体引用的方式处理时发现数据是不对的。 如下所示 1 UINT8 MailboxServiceInd(TMBX MBXMEM *pMbx) 2 { 3 UINT8 resu ......
内存 结构 问题

Linux大页会立即占用分配内存

Linux大页会立即占用分配内存 系统参数vm.nr_hugepages设置生效后,会立即分配对应内存。 如下: [root@dev-app80 ~]# sysctl -q vm.nr_hugepages vm.nr_hugepages = 0 [root@dev-app80 ~]# free -m ......
内存 Linux

动态内存分配复习

动态内存分配复习 为什么要使用动态内存分配: 在声明数组时,必须用一个编译常量指定数组长度,但是,数组的长度往往只有在运行的时候才能被确定,这是因为它所需要的内存空间取决于输入数据,但是容易浪费空间,又或者容易溢出 malloc和free: malloc执行动态内存分配,free执行释放内存,当使用 ......
内存 动态

FFmpeg 内存H264流发布rtmp

背景 网上查了很多关于FFmpeg读取内存264直接发布成rtmp的资料,发现这方面的资料很少,最近做了这方面的功能,特此记录下。 问题描述 网上很多类似音视频转码的例子(无编解码过程,就是音视频格式重新封装),但是都是基于有输入文件,我的需求是,从内存读取一帧帧的264码流存成flv或发布成rtm ......
内存 FFmpeg H264 rtmp 264

使用ffmpeg将内存中的裸流打包成可播放的MP4文件,并输出到内存中

前两天项目上有个需求,要求大概是这样的,输入端是一帧一帧的h264裸流(本示例只支持h264裸流,h265可基于本示例自己开发,在此我就不过多阐述了)和一个时间,要求输出根据这个时间来产生一个前后各延伸一段时间的视频(伴随录像),且伴随录像是可直接播放的MP4文件。但是产生的视频文件不是直接存储在本 ......
内存 文件 ffmpeg MP4 MP

MTK平台 MtkSettings添加memory一级菜单显示内存信息

1.矢量图 用Androidstudio画的 vendor\mediatek\proprietary\packages\apps\MtkSettings\res\drawable\ic_settings_memory_test.xml <vector android:autoMirrored="tr ......
MtkSettings 菜单 内存 memory 平台

Trace32下对ARM内存访问Access Classes总结

原内容来源于T32帮助文档debugger_arm.pdf的ARM Specific Implementations->Access Classes,这里记录方便查询。 首先介绍Access Classes都有哪些选项,然后介绍常见的Access Classes组合,最后介绍如何创建合法的Acces ......
内存 Classes Access Trace ARM

FreeeRTOS 内存管理

使用动态内存管理的时候 FreeRTOS 内核在创建任务、队列、信号量的时候会动态的申请RAM。标准 C 库中的 malloc()和 free()也可以实现动态内存管理,但是如下原因限制了其使用: ● 在小型的嵌入式系统中效率不高。● 会占用很多的代码空间。● 它们不是线程安全的。● 具有不确定性, ......
FreeeRTOS 内存

防止Cannot allocate memory(无法分配内存)

防止Cannot allocate memory(无法分配内存) 值为不超过总内存的1%即可,我这里设置的是512M,min_free_kbytes表示强制 Linux 系统最低保留的空闲内存(Kbytes),如果系统可用内存低于设定的 min_free_kbytes 值,则默认系统启动 oom-k ......
allocate 内存 Cannot memory

[Rust] Option vs Result

`Option` and `Result` are two very central enums in Rust, and they are used for error handling and for representing the absence of a value. Here is a ......
Option Result Rust vs

[Rust] Handle Error

Typescript: import fs from "fs"; const fileName = process.argv[2]; if (fileName) { fs.readFileSync(fileName) .toString() .split("\n") .map((num) => pa ......
Handle Error Rust

Go 空结构体:零内存的魔力

Go Version → 1.20.4 前言 在 Go 语言中,有一种特殊的用法可能让许多人感到困惑,那就是空结构体 struct{}。在本文中,我将对 Go 空结构体进行详解,准备好了吗?准备一杯你最喜欢的饮料或茶,随着本文一探究竟吧。 什么是空结构体 不包含任何字段的结构体,就是空结构体。它有以 ......
魔力 内存 结构 Go

JDK中自带的用于分析JVM内存状况的工具Jmap

查看java项目中所有占用内存的情况,从大到小依次排序,7529为java项目的进程号,可以使用jps命令获取 jmap -histo 7529 以二进制格式导出,file为自定义的文件名 7529为java项目进程号 jmap -dump:format=b,file=jvm.txt 7529 jm ......
状况 内存 工具 Jmap JDK

[Rust] Option

Typescript: function practice(nums: number[], index: number): number { return (nums[index] ?? index) * 5 } In Rust: fn practice(nums: Vec<usize>, inde ......
Option Rust

用rust 写一个jar包 class冲突检测工具

Rust很适合写命令行工具,特别是使用`clap` crate 更加方便,这篇文章介绍使用rust写一个jar包class冲突检测的工具。项目地址: [https://github.com/Aitozi/jar_conflict_detector](https://github.com/Aitozi ......
工具 class rust jar

Python变量内存管理

变量 三个组成部分: 1变量名:反应变量值所描述的意义,并且可以用来引用变量值。 2赋值符号:赋值。 3变量值:存放数据,用来记录现实世界中的某种状态。 常量 计算机语言便设计了常量这个概念,也就是说常量相对于变量是一个不会变化的量。在Python中,虽然也和其他很多计算机语言一样拥有常量这个概念, ......
变量 内存 Python

内存映射大文件

对于一些小文件,用普通的文件流就可以很好的解决,可是对于超大文件,比如2G或者更多,文件流就不行了,所以要使用API的内存映射的相关方法,即使是内存映射,也不能一次映射全部文件的大小,所以必须采取分块映射,每次处理一小部分。 先来看几个函数 CreateFile :打开文件 GetFileSize ......
内存 文件

了解JAVA内存模型(JMM)

## 1、概述 我们常说的JMM指的是Java内存模型(Java Memory Model,JMM),主要用于控制Java程序解决线程间如何通信和数据同步,JMM规范了多线程访问共享内存时的 **可见性、有序性和原子性**。 - 所有的共享变量都存在**主内存**中; - **每个线程**都保存了一 ......
模型 内存 JAVA JMM

Redis内存兜底策略——内存淘汰及回收机制

# Redis内存兜底策略——内存淘汰及回收机制 Redis内存淘汰及回收策略都是Redis**内存优化兜底**的策略,那它们是如何进行**兜底**的呢?先来说明一下什么是内存淘汰和内存回收策略: - Redis内存淘汰:当Redis的内存使用**超过配置**的限制时,根据一定的策略删除一些键,以* ......
内存 机制 策略 Redis

一篇文章告诉你什么是Java内存模型

在上篇 [并发编程Bug起源:可见性、有序性和原子性问题](https://juejin.cn/post/7138056309366079496),介绍了操作系统为了提示运行速度,做了各种优化,同时也带来数据的并发问题, # 定义 在单线程系统中,代码按照顺序`从上往下`顺序执行,执行不会出现问题。 ......
模型 篇文章 内存 Java

关于内存配置相关内核参数的再学习

# 关于内存配置相关内核参数的再学习 ## 摘要 ``` 上周一台192G内存的跑着重型拆分微服务的服务器宕机了. 服务器上面还有一套30个pdb的Oracle数据库. 实际原因是因为内存耗尽. 导致机器无响应. 控制台没有任何反馈. 没办法的情况下进行了重启操作. 当时没有进行彻查. 今天有同事反 ......
内核 内存 参数

ARM64启动汇编和内存初始化(上)

文章代码分析基于linux-5.19.13,架构基于aarch64(ARM64)。 涉及页表代码分析部分: (1)假设页表映射层级是4,即配置CONFIG_ARM64_PGTABLE_LEVELS=4; (2)虚拟地址宽度是48,即配置CONFIG_ARM64_VA_BITS=48; (3)物理地址 ......
内存 ARM 64

QSharedPointer创建导致内存泄漏,以及析构异常的问题

1,下面的代码导致了内存泄漏 auto item=QSharedPointer ( new MyClass(),&QObject::deleteLater) 2,去掉了自定义析构后,内存泄漏问题解除,但是导致了新的问题, auto item=QSharedPointer<MyClass> ( new ......
QSharedPointer 内存 问题

求int型正整数在内存中存储时1的个数

描述 输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。 数据范围:保证在 32 位整型数字范围内 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1的个数 示例1 输入:5 输出:2 示例2 输入:0 输出:0 1 public sta ......
整数 个数 内存 int

kindle7插件开发笔记[2]-使用Rust重写插件

## 前言 上一篇笔记:[kindle7插件开发笔记[1]-在折腾中入门](https://www.cnblogs.com/qsbye/p/15390296.html) [代码地址:https://gitee.com/qsbye/kindle-plugin-touch](https://gitee. ......
插件 kindle7 笔记 kindle Rust

Linux 性能 | 内存占用分析

内存占用达到阙值,一直报警,持续了很长时间,由于是正在开发得服务器,并且在假期。直到周一来了才发现。 内存爆满会影响进程运行,使响应变慢,甚至服务挂掉。 学会查看并分析内存信息,及时应对至关重要。 ## 查看内存 最常用得是 ```free```、```top```、```vmstat``` 命令 ......
内存 性能 Linux

windows系统下SNMP协议获取系统内存、CPU实例代码

系统环境:win10注:win10及以下windows平台,在控制面板,程序中,添加snmp服务功能。可参照:https://jingyan.baidu.com/article/3d69c5515e56b3f0cf02d7bf.html为方便测试snmp协议,先关闭系统防火墙,后续可根据需要进行防护 ......
系统 实例 内存 windows 代码

确认windows笔记本加内存条选择的几个步骤

是否支持添加第二个内存条 确认电脑最大支持多少内存 cmd命令查询 wmic memphysical get maxcapacity 17777216/1024约等于16G 确认电脑支持的内存条的频率 可以根据电脑主板上查看,也可以从电脑右键属性中查看,一般i5之后的都支持1600,1866MHz ......
内存条 步骤 内存 windows 笔记本

windows下rust环境的安装(现在是2023年5月份)

在自己家电脑上安装一下rust,还是遇到一些问题,这里记录一下,免得后面再踩坑。 # 官方网站 获取主要信息还得靠官网,比如安装软件:) 地址是 https://www.rust-lang.org/zh-CN/ ,点马上开始就能进入下载页面了。 ![image](https://img2023.cn ......
月份 windows 环境 rust 2023

C#学习笔记 -- 变量、内存、

变量 1、变量在内存中分配空间 以变量名对应的内存地址为起点, 以其数据类型所要求的存储空间为长度的一块内存区域 (1)值变量如何存储在内存上 内存在计算机中被分成了一个字节一个字节的区域, 其中每个8个bit构成一个字节, 每个字节有自己唯一标识 操作系统会预留一部分内存, 别的进程无法使用 用橙 ......
变量 内存 笔记