磁盘的读取和写入速度的测量 嵌入式 实例

SD卡真实读写速度测试实操:用dd命令+time工具精准测量(避坑指南) 本文提供了一套使用dd命令和time工具精准测试SD卡真实读写速度的实操指南。通过设计四层深度测试方案,包括带缓存写入、绕过缓存的直接写入、精确耗时测量以及同步写入测试,帮助用户避开操作系统缓存和块大小设置等常见陷阱,准确评估SD卡的持续I/O性能,为嵌入式系统和单板计算机的存储选型与优化提供可靠依据。 阅读详情

创建时间:2011年4月27日, 16:28:33

 

磁盘的读取和写入速度的测量

设备:

 

1. 准备

 安装dd ,time在busybox中:

 Coreutils ---> 

[*] dd

 miscutils --->

[*] time

2. 命令

纯读取:

  time /bin/dd if=tmp of=/dev/null bs=64k

纯写入

time /bin/dd if = /dev/zero of=tmp bs=1024 count=1000000

 /******************************************************************/

 /* SD卡                                       */

 /******************************************************************/

3. 运行

A. 在开发板上

    # time /bin/dd if=/dev/zero of=tmp bs=1024 count=30000

    30000+0 records in

    30000+0 records out

    real    0m 41.35s

    user    0m 0.30s

    sys     0m 4.18s

    # tim /bin/dd if=tmp of=/dev/null bs=64k

    -/bin/sh: tim: not found

    # time /bin/dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    real    0m 9.79s

    user    0m 0.01s

    sys     0m 0.49s

    #

B. 在Vmware 6.0 虚拟机上

第一次: 

    root@brauce-desktop:/mnt/usb# time dd if=/dev/zero of=tmp bs=1024 count=30000

    30000+0 records in

    30000+0 records out

    30720000 bytes(31 MB) copied, 0.130739 s, 235MB/s

    real 0m0.140s

    user 0m0.016s

    sys  0m0.104s

    root@brauce-desktop:/mnt/usb# time dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    30720000 bytes(31 MB) copied, 0.0316264 s, 971MB/s

    real 0m0.035s

    user 0m0.000s

    sys  0m0.020s

第二次:

    root@brauce-desktop:/mnt/usb# time dd if=/dev/zero of=tmp bs=1024 count=30000

    30000+0 records in

    30000+0 records out

    30720000 bytes(31 MB) copied, 0.12498 s, 246MB/s

    real 0m0.134s

    user 0m0.012s

    sys  0m0.100s

    root@brauce-desktop:/mnt/usb# time dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    30720000 bytes(31 MB) copied, 0.0316264 s, 971MB/s

    real 0m0.035s

    user 0m0.000s

    sys  0m0.020s 

第三次: 

    root@brauce-desktop:/mnt/usb# time dd if=/dev/zero of=tmp bs=1024 count=300000

    300000+0 records in

    300000+0 records out

    30720000 bytes(307 MB) copied, 49.6879 s, 6.2MB/s

    real 0m49.691s

    user 0m0.072s

    sys  0m1.788s

    root@brauce-desktop:/mnt/usb# time dd if=tmp of=/dev/null bs=64k

    4687+1 records in

    4687+1 records out

    307200000 bytes(307 MB) copied, 0.135681 s, 2.3GB/s

    real 0m0.139s

    user 0m0.004s

    sys  0m0.096s 

第四次:

     root@brauce-desktop:/mnt/usb# time dd if=/dev/zero of=tmp bs=1024 count=300000

    3000000+0 records in

    3000000+0 records out

    307200000 bytes(307 MB) copied, 38.6857s, 7.9MB/s

    real 0m40.807s

    user 0m0.096s

    sys  0m1.208s

    root@brauce-desktop:/mnt/usb# time dd if=tmp of=/dev/null bs=64k

    4687+1 records in

    4687+1 records out

    307200000 bytes(307 MB) copied, 0.148741 s, 2.1GB/s

    real 0m0.152s

    user 0m0.004s

    sys  0m0.088s            

4. 分析

A. 开发板上结果分析

    Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32

    Type "copyright", "credits" or "license()" for more information.

    >>> 1024*30000

    30720000

    >>> 30/41.35

    0.7255139056831922

    >>> 30720000/9.79

    3137895.8120531156

    >>> 30720000/41.35

    742926.2394195888

    >>>

B. Vmware 6.0 虚拟机上结果分析

 

 /******************************************************************/

 /* 16GB移动U盘                                */

 /******************************************************************/

3. 运行

A. 在开发板上

第一次:

    # time /bin/dd if=/dev/zero of=u/tmp bs=1024 count=30000

    30000+0 records in

    30000+0 records out

    real    0m 9.38s

    user    0m 0.20s

    sys     0m 4.74s

    # time /bin/dd if=u/tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    real    0m 5.27s

    user    0m 0.01s

    sys     0m 0.86s

 

 

第二次:

    # time /bin/dd if=/dev/zero of=u/tmp bs=1024 count=30000

    30000+0 records in

    30000+0 records out

    real    0m 11.08s

    user    0m 0.22s

    sys     0m 4.83s

    # time /bin/dd if=u/tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    real    0m 8.23s

    user    0m 0.01s

    sys     0m 0.71s

 

第三次:

    # time /bin/dd if=/dev/zero of=u/tmp bs=1024 count=30000

    30000+0 records in

    30000+0 records out

    real    0m 13.41s

    user    0m 0.23s

    sys     0m 5.04s

    # time /bin/dd if=u/tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    real    0m 6.61s

    user    0m 0.02s

    sys     0m 0.95s

 

B. 在VMware虚拟机上

第一次:

    root@brauce-desktop:/mnt/usb# time dd if=/dev/zero of=tmp bs=1024 count=300000

    30000+0 records in

    30000+0 records out

    30720000 bytes(307 MB) copied, 33.3725s, 9.2MB/s

    real 0m33.459s

    user 0m0.076s

    sys  0m6.564s

    root@brauce-desktop:/mnt/usb# time dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    30720000 bytes(307 MB) copied, 0.147436 s, 2.1GB/s

    real 0m0.151s

    user 0m0.000s

    sys  0m0.104s

 

第二次:

    root@brauce-desktop:/mnt/usb# time dd if=/dev/zero of=tmp bs=1024 count=300000

    30000+0 records in

    30000+0 records out

    30720000 bytes(307 MB) copied, 33.9223s, 9.1MB/s

    real 0m33.987s

    user 0m0.076s

    sys  0m01.316s

    root@brauce-desktop:/mnt/usb# time dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    30720000 bytes(307 MB) copied, 0.131432 s, 2.3GB/s

    real 0m0.135s

    user 0m0.004s

    sys  0m0.072s

 

第三次:

    root@brauce-desktop:/mnt/usb# time dd if=/dev/zero of=tmp bs=1024 count=300000

    30000+0 records in

    30000+0 records out

    30720000 bytes(307 MB) copied, 35.4205s, 8.7MB/s

    real 0m35.487s

    user 0m0.028s

    sys  0m1.516s

    root@brauce-desktop:/mnt/usb# time dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    30720000 bytes(307 MB) copied, 0.144891 s, 2.1GB/s

    real 0m0.148s

    user 0m0.000s

    sys  0m0.108s

 

4. 分析

A. 在开发板上

第一次

    Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32

    Type "copyright", "credits" or "license()" for more information.

    >>> size=1024*30000

    >>> print(size/1024/1024,'M')

    29.296875 M

    >>> write=size/9.38

    >>> print(write/1024/1024, 'M')

    3.123334221748401 M

    >>> read=size/5.27

    >>> print(read/1024/1024,'M')

    5.559179316888046 M

 

第二次:

    Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32

    Type "copyright", "credits" or "license()" for more information.

    >>> size=1024*30000

    >>> print(size/1024/1024,'M')

    29.296875 M

    >>> write=size/13.41

    >>> print(write/1024/1024,'M')

    2.1847035794183447 M

    >>> read=size/8.23

    >>> print(read/1024/1024,'M')

    3.5597660996354796 M

 

第三次:

    Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32

    Type "copyright", "credits" or "license()" for more information.

    >>> size=1024*30000

    >>> print(size/1024/1024,'M')

    29.296875 M

    >>> write=size/13.41

    >>> print(write/1024/1024,'M')

    2.1847035794183447 M

    >>> read=size/6.61

    >>> print(read/1024/1024,'M')

    4.432204992435703 M

 

B. 在VMware虚拟机上

 

 /******************************************************************/

 /* 500 GB移动硬盘           */

 /******************************************************************/

3. 运行

A. 在开发析上

第一次:

    # time /bin/dd if=/dev/zero of=tmp bs=1024 count=30000

    30000+0 records in

    30000+0 records out

    real    0m 7.90s

    user    0m 0.21s

    sys     0m 4.36s

    # time /bin/dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    real    0m 6.59s

    user    0m 0.00s

    sys     0m 1.05s

第二次:

    # time /bin/dd if=/dev/zero of=tmp bs=1024 count=30000

    30000+0 records in

    30000+0 records out

    real    0m 8.36s

    user    0m 0.17s

    sys     0m 4.40s

    # time /bin/dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    real    0m 5.37s

    user    0m 0.01s

    sys     0m 1.34s

 

第三次:

    # time /bin/dd if=/dev/zero of=tmp bs=1024 count=30000

    30000+0 records in

    30000+0 records out

    real    0m 8.42s

    user    0m 0.34s

    sys     0m 4.58s

    # time /bin/dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    real    0m 7.95s

    user    0m 0.00s

    sys     0m 0.70s

随机参考结果:

    # time /bin/dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    real    0m 7.26s

    user    0m 0.01s

    sys     0m 0.79s

    # time /bin/dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    real    0m 6.84s

    user    0m 0.01s

    sys     0m 1.10s

    # time /bin/dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    real    0m 37.94s

    user    0m 0.01s

    sys     0m 0.85s

 

B. 在Vmware虚拟机上

第一次: 

    root@brauce-desktop:/mnt/usb# time dd if=/dev/zero of=tmp bs=1024 count=30000

    30000+0 records in

    30000+0 records out

    30720000 bytes(31 MB) copied, 0.291994 s, 105MB/s

    real 0m0.292s

    user 0m0.004s

    sys  0m0.272s

    root@brauce-desktop:/mnt/usb# time dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    30720000 bytes(31 MB) copied, 0.0316264 s, 971MB/s

    real 0m0.035s

    user 0m0.000s

    sys  0m0.020s

 

 

第二次:

    root@brauce-desktop:/mnt/usb# time dd if=/dev/zero of=tmp bs=1024 count=30000

    30000+0 records in

    30000+0 records out

    30720000 bytes(31 MB) copied, 0.137522 s, 223MB/s

    real 0m0.146s

    user 0m0.000s

    sys  0m0.120s

 

    root@brauce-desktop:/mnt/usb# time dd if=tmp of=/dev/null bs=64k

    468+1 records in

    468+1 records out

    30720000 bytes(31 MB) copied, 0.032123 s, 956MB/s

    real 0m0.035s

    user 0m0.000s

    sys  0m0.020s

 

以下为大容量测试(307M数据):

第三次:

    root@brauce-desktop:/mnt/usb# time dd if=/dev/zero of=tmp bs=1024 count=300000

    300000+0 records in

    300000+0 records out

    307200000 bytes(307 MB) copied, 16.6353 s, 18.5 MB/s

    real 0m16.639s

    user 0m0.032s

    sys  0m2.816s

 

    root@brauce-desktop:/mnt/usb# time dd if=tmp of=/dev/null bs=64k

    4687+1 records in

    4687+1 records out

    307200000 bytes(307 MB) copied, 0.125086 s, 2.5 GB/s

    real 0m0.128s

    user 0m0.004s

    sys  0m0.064s

第四次:

    root@brauce-desktop:/mnt/usb# time dd if=/dev/zero of=tmp bs=1024 count=300000

    300000+0 records in

    300000+0 records out

    307200000 bytes(307 MB) copied, 16.0035 s, 19.2MB/s

    real 0m16.072s

    user 0m0.104s

    sys  0m1.120s

 

    root@brauce-desktop:/mnt/usb# time dd if=tmp of=/dev/null bs=64k

    4687+1 records in

    4687+1 records out

    307200000 bytes(307 MB) copied, 0.148483s, 2.1 GB/s

    real 0m0.152s

    user 0m0.000s

    sys  0m0.124s         

 

4. 分析

A. 开发板上结果分析

只分析了第一次:

    Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32

    Type "copyright", "credits" or "license()" for more information.

    >>> print(size/1024/1024,"M")

    29.296875 M

    >>> size=1024*30000

    >>> print(size/1024/1024, "M")

    29.296875 M

    >>> write=size/7.9

    >>> print(write/1024/1024, "M")

    3.7084651898734173 M

    >>> read=size/6.59

    >>> print(read/1024/1024,"M")

    4.445656297420334 M

    >>> 

 

B. Vmware虚拟机上结果分析

   不用分析了哦,呵呵,Vmware上的dd命令已经把结果输出来了 

PS:

1. 创建设备

    #mknod /dev/null c 1 3

    #mknod /dev/zero c 1 5

    #mknod /dev/random c 1 8

 

time有计时作用,dd用于复制,从if读出,写到of。if=/dev/zero不产生IO,因此可以用来测试纯写速度。同理of=/dev/null不产生IO,可以用来测试纯读速度。bs是每次读或写

 

5. 总结:

SD卡: 

   在开发板上,读速度在3.1MB/s,写的速度在开发板上是740K/s,

   而在Vmware中读速度能达到970MB/s-2.3GB/s。 写速度是6.2MB/s

16GBU盘:

   在开发板上,读速度在4.4MB/s,写的速度在开发板上是2.1M/s-3.1M/s,

   而在Vmware中读速度能达到2.3GB/s。 写速度是9.1MB/s

500GB硬盘:

   在开发板上,硬盘的读速度在 4.4MB/s,而写的速度在3.3MB/s.

   在Vmware虚拟机中,硬盘的读速度在 2.1GB ,写速度在18.5MB/s左右   

之所以出现这样的结果可能是和CPU的处理速度和存储设备的处理速度有关。 

 

注:理论上复制量越大测试越准确。

tip: noetpad没有很多地tab的功能,哈哈。在dev-c++里使用了多行tab功能 

注: 

1. 给出大量的测试用例,不错的想法。

2. 对文档进行结构化排版,以后看的时候会更清楚一点

C++ 性能优化篇三《测量性能》 测量可测量之物,将不可测量之物变为可测量。 ——伽利略 • 伽利雷(1564—1642) 测量和实验是所有改善程序性能尝试的基础。本章将介绍两种测量性能的工具软件:分析 器和计时器软件。我将讨论如何设计性能测量实验,使得测量结果更有指导意义,而不是 误导我们。 最基本和最频繁地执行的软件性能测量会告诉我们“需要多长时间”。执行函数需要多长 时间?从磁盘读取配置文件需要多长时间?启动和退出程序需要多长时间? 这些测量问题的解答方法有时简单得令人觉得可笑。牛顿通过用物体掉落至地面的时间除 以他的心跳速度测量. 阅读详情

相关推荐

NXP RD-UAMP-SENSOR:嵌入式电流测量与可视化分析实战指南

在嵌入式系统开发中,精确的电流测量是进行低功耗设计和电源管理优化的基础。其核心原理通常基于采样电阻和信号调理电路,将电流信号转换为可测量的电压,再通过高精度ADC进行数字化。这项技术的价值在于,它能帮助工程师量化芯片或模块在不同工作模式下的功耗,从而优化系统能效。在实际应用中,尤其是在评估传感器动态功耗或调试电池供电设备时,直观的数据可视化至关重要。NXP的RD-UAMP-SENSOR参考设计巧妙地将硬件电流测量单元与成熟的Sensor Toolbox软件生态相结合,通过模拟I2C传感器的方式,实现了从数据

weixin_30369041的博客 535

嵌入式开发——测试硬盘的写入速度

原文链接:https://www.ebaina.com/articles/140000003137 平时使用嵌入式的时候,针对设备上挂载的硬盘,需要测试硬盘的写入速度,所以会需要用到简单的命令以及使用的方式: dd if=/dev/zero of=test.bin bs=1M count=1024 当然此命令需要在硬盘的目录下进行。 易百纳技术社区内容涵盖半导体、图像处理、人工智能、物联网、工业板卡以及通用硬件等多个领域,已成为一个多系列(如:海思芯片等)的第一热门技术网站,致力于为更多工程师答疑解惑,创造

liuyudian123123的博客 289

基于树莓派与加速度计的头盔冲击力监测器DIY指南

加速度计作为测量物体加速度的核心传感器,其工作原理基于微机电系统(MEMS)技术,能够将物理运动转换为电信号。在嵌入式系统与物联网应用中,通过I2C等数字接口与主控器(如树莓派)通信,实现对运动状态的精准感知。这项技术的工程价值在于将抽象的力学概念转化为可量化、可记录的数据,为安全监测、运动分析等场景提供了关键数据支撑。本文聚焦于一个具体的应用实例:利用树莓派Zero W和LIS331加速度计构建一个头盔冲击力监测器。该系统通过实时采集三轴加速度数据,并依据设定的G力阈值(如瞬时9G或持续4G超过3秒)进行

1039

磁盘的读写性能压力测试

前言 顺序读写 (吞吐量bw,常用单位为MB/s):文件在硬盘上存储位置是连续的。 适用场景:大文件拷贝(比如视频音乐)。 4K随机读写 (IOPS,常用单位为次):在硬盘上随机位置读写数据,每次4KB。 适用场景:操作系统运行、软件运行、数据库。 测试准备 测试硬盘性能时,建议直接测试裸数据盘(如 /dev/vdb)。 测试文件系统性能时,推荐指定具体文件测试(如 /data/file)。 数据...

Cagent的博客 7160

深入解析Flash闪存:从浮栅晶体管到SSD与嵌入式应用

闪存(Flash)作为一种非易失性半导体存储器,其核心原理基于浮栅晶体管对电荷的捕获与释放,从而实现数据的持久化存储。这一技术原理衍生出NAND与NOR两大架构,分别针对大容量数据存储和代码执行进行了优化。在工程实践中,闪存技术通过多层单元(如TLC、QLC)不断提升存储密度,但也带来了寿命、可靠性和性能的挑战,这直接推动了固态硬盘(SSD)中闪存转换层(FTL)、垃圾回收(GC)和高级纠错码(ECC)等关键技术的发展。这些技术共同作用,使得闪存能够广泛应用于从消费级SSD到嵌入式MCU系统存储等场景。理解

weixin_33951761的博客 323

嵌入式Linux存储瓶颈分析

本文研究基于Linux的嵌入式系统中高速存储设备的性能瓶颈,发现传统缓存机制在资源受限环境下导致CPU成为性能瓶颈。实验表明,标准文件I/O效率低下,而直接I/O在大块数据操作下可显著提升吞吐量并降低CPU负载,揭示了优化存储栈的必要性。

gg901的博客 720

【Sys】C++怎样读取文件才有最快的速度?

mmap 分析:https://sq.163yun.com/blog/article/173146709806518272 在进行大规模数据处理时,读文件很有可能成为速度瓶颈。不管你的CPU有4个核还是8个核,主频有2G还是3G,硬盘IO速度总是有个上限的。在本人最近的一次经历中,对一个11G的文本进行数据处理,一共耗时34.8秒,其中竟然有30.2秒用在访问IO上,占了所有时间的87%左右。 虽然说硬盘IO是有上限的,那么C++为我们提供的各函数,是否都能让我们达到这个上限...

我的笔记本 4913

C++实现CSV文件数据读取与惯性导航数据处理实战

假设在global.h中有如下声明:对应的global.cpp定义:这样做的好处是集中管理所有外部资源路径,便于修改和测试。是<string>头文件中定义的模板函数,其常见重载形式如下:第一个版本接受一个自定义分隔符delim,第二个则使用默认的换行符。下面是一个基本示例,展示如何逐行读取CSV文件内容:if (!return -1;return 0;代码逻辑逐行分析:第5行:创建对象尝试打开名为的文件。第6行:声明一个变量。

weixin_42596214的博客 931

android 64k方法,64K方法数限制原理和解决方案

概述Android Dalvik可执行文件.dex中的Java方法数引用超过65536,64k的计算方法是65536除以1024,65K的计算方法是65536除以1000原因dex限制了程序的最大方法数是65535,如果超过最大限制,无法编译.Android 5.0 之前的版本谷歌出了一个名为MultiDex Support Library的库Android 5.0 之后的版本Android试用了...

weixin_42318812的博客 740

磁盘写入速度测试工具

磁盘写入速度测试工具

Eureka自我保护机制

Eureka自我保护机制 默认情况下,当eureka server在一定时间内没有收到实例的心跳,便会把该实例从注册表中删除(默认是90秒),但是,如果短时间内丢失大量的实例心跳,便会触发eureka server的自我保护机制,比如在开发测试时,需要频繁地重启微服务实例,但是我们很少会把eureka server一起重启(因为在开发过程中不会修改eureka注册中心),当一分钟内收到的心跳数大量减少时,会触发该保护机制。可以在eureka管理界面看到Renews threshold和Renews(last

Soul_Ming的博客 543

LINUX 智能电视 电视盒子 嵌入式硬件磁盘拷贝测试

LINUX 智能电视 电视盒子 嵌入式硬件磁盘拷贝测试 使用dd测试脚本执行此项测试: 1.将dd工具拷贝至/userdate/路径,并添加可执行权限; 2.执行(vi)命令新建一个空的test文件,继续执行(time dd if=/dev/zero of=test bs=1G count=1)命令生成一个1G容量的test文件,此时得到生成1G文件硬盘写入时间; 3.执行(time dd if=/dev/mmcblk1p13 of=/dev/null bs=1G count=1)命令读取1G容量的文件,此

GoldenRolan的博客 284

跨厂商网络设备的RADIUS认证:Windows NPS的兼容性与最佳实践

本文详细探讨了Windows NPS在多厂商网络环境中的RADIUS认证实践,特别针对华为、华三、思科等主流设备的兼容性问题提供解决方案。从基础配置到高级优化,涵盖VSA属性映射、认证协议选择及安全加固措施,帮助企业实现统一身份认证并提升网络安全性。

weixin_29213827的博客 421

嵌入式系统SD卡BMP与JPG图像高效读取与显示实战

本文详细介绍了在嵌入式系统中从SD卡高效读取和显示BMP与JPG图像的实战方法。内容涵盖硬件平台选型、FATFS文件系统移植、图像格式解析、解码优化及内存管理,重点提供了针对STM32的BMP直接读取和JPG软硬件解码方案,帮助开发者提升嵌入式图像处理性能。

aa123的博客 638

apt-get update时出现GPG error:... bionic InRelease:The following signatures were invalid: EXPKEYS解决方案

本文主要介绍了apt-get update时出现W: GPG error: … bionic InRelease: The following signatures were invalid: EXPKEYSIG B7B3B788A8D3785C MySQL Release Engineering E: The repository ‘… bionic InRelease’ is not signed.解决方案,希望能对使用Ubuntu系统的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

【ARM Coresight | AMBA BUS | Cache 与 MMU/MPU | CoreLink | GCC | CSH 专栏导读】

1. ARM Coresight(SoC-400/SoC-600) 专栏 2. ARMv8/v9 CPU/Cache 专栏 3. Linux ARM AMBA 总线 专栏 4. Trace32/DS-5 专栏。。。

CodingCos的博客 8241

MapDB性能基准测试终极指南:科学评估你的存储方案

想要为你的Java应用选择最佳的数据存储方案吗?MapDB作为一款高性能的嵌入式数据库引擎,提供了基于磁盘存储或堆外内存的并发映射、集合和队列。在本指南中,我们将深入探讨如何进行科学的MapDB性能基准测试,帮助你找到最适合的存储策略。🚀 ## 为什么需要MapDB性能基准测试? MapDB是一个灵活的数据存储解决方案,它可以作为传统集合的替代品、不受垃圾收集器影响的堆外集合、具有过期和磁盘

gitblog_00831的博客 1037

Far planner代码系列(2)

graph_decoder系列(2) 承接上文 我们接着来看decoder_node.cpp的代码部分 void GraphDecoder::Init() { /* initialize subscriber and publisher */ //graph_sub_ 订阅节点/robot_vgraph 其类型是visibility_graph_msg/Graph的消息 graph_sub_ = nh.subscribe("/robot_vgrap...

博客 1534

操作系统哲学原理(15)文件原理-磁盘操作

说明:该系类文章主要是从哲学视角看操作系统 这门学科。同时也是博主阅读《操作系统之哲学原理》的笔记总结。因为博主 这些年主要是以研究安卓系统和 嵌入式Linux为主,因此这个系类文章也是这两个领域不可或缺的基石之一,尤其是对操作系统感兴趣的伙伴可特别关注。 15 磁盘操作 磁盘是操作系统不可或缺的一部分,因此理解磁盘对草组系统原理的理解有重要意义。 操作系统提供的抽象就是:文件与文件系统(文件系统就是磁盘的抽象)。 15.1 磁盘组织与管理 磁盘的概念:一种存储介质,特性是持久,而且价格低廉,所..

wangdsh的博客 1210

【机器学习-09】特征工程

特征工程是机器学习模型构建的初步工作,但它的重要性却贯穿整个模型生命周期。在进行特征工程时,我们需要充分利用数据科学的知识和技巧,结合具体的应用场景和业务需求,来制定出最合适的特征提取和转换策略。只有这样,我们才能为机器学习模型提供最有价值的输入,从而使其发挥出最大的潜力。总之,特征工程是机器学习中的一项关键任务,它需要我们用心去探索、去实践、去创新。只有不断地优化和完善特征工程的过程,我们才能构建出更加准确、更加可靠的机器学习模型,为实际应用带来更大的价值。

qq_38614074的博客 2万+

LabVIEW实现HTTP通信

本节简要介绍HTTP通信的基础知识,并以工业物联网平台TLINK中云端设备的数据发布设计为例,阐述互联网环境下HTTP客户端应用程序设计的基本方法。重点讲解工业物联网平台TLINK中HTTP设备的创建、通信数据帧的构造与测试。

不脱发的程序猿 1546

嵌入式开发SD卡读取失败全解析:从SPI通信到文件系统挂载

在嵌入式系统开发中,SPI(串行外设接口)是一种常用的同步串行通信协议,广泛应用于微控制器与SD卡、传感器等外设的连接。其工作原理基于主从架构,通过时钟线同步和数据线传输实现全双工通信。SPI协议的价值在于其简单性、高速性和全双工能力,使其成为嵌入式领域外设扩展的基石技术。在实际应用中,SPI常用于实现存储扩展、显示驱动和无线模块通信等场景。本文聚焦于SPI接口在SD卡读写中的典型问题——以Maixduino开发板为例,深入剖析因SPI通信链路异常导致的SD卡无法识别现象。通过结合硬件信号完整性分析和软件驱

weixin_30616969的博客 469

【软考】高项论文写作常见模板

本文主要介绍了YYYY年MM月DD日,我所在公司承接了XXXX项目的建设过程,包括了XXX,XXX,XXX内容,涉及到XXX,XXX,XXX技术。本人在项目中承载着项目经理的角色,主要负责了XXX,XXX,XXX方面事宜。此项目时间紧,任务重,实施过程中,我们特别注重了1、XXX 2、XXX 3、XXX几个方面,经过团队的一致努力,本项目按时交付,运行至今,客户反馈良好。但是在实施过程中,也曝露除了一些问题,包括了XXX,XXX等,通过应急处理和协调,这些问题都得到了妥善解决,没有影响到项目进度。

奶爸的编程之路,也就一周冷个三天 1687

MicroWebSrv性能优化实战:10个技巧让嵌入式服务器响应速度提升300%

MicroWebSrv 性能优化,是很多 ESP32、Pycom 和 Pyboard 开发者在物联网项目中绕不开的话题。这款专为 MicroPython 打造的微型 HTTP Web 服务器,仅凭 [microWebSrv.py](https://link.gitcode.com/i/18816264683e49d13f9f67ac80f17f39)、[microWebSocket.py](htt

gitblog_00160的博客 279

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

DeepSeek总结的SQLite 与 DuckDB 在相同的 16 美元/月服务器上对决:每一个性能悬崖都移动了 100 倍

SQLite 与 DuckDB 性能对比摘要 在16美元/月的Hetzner服务器上,DuckDB相比SQLite展现出显著优势: 写入性能提升: 指标写入速度达254,242点/秒(SQLite的4倍) Span写入95,737条/秒(3倍提升) 日志写入75,225条/秒(15倍提升) 读取性能突破: 各信号类型的"性能悬崖"(仪表盘可加载的临界数据量)均延后100倍 1亿行指标查询中位数响应3秒(SQLite在100万行就需3.85秒) 日志查询在1000万行仍保持85毫秒响应(SQLite同等规模已

l1t的专栏 604

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Arduino读取Apple ProFile硬盘数据技术解析

本项目实现了通过Arduino读取复古硬盘的完整技术方案,包括硬件修复、协议逆向工程和实际数据提取。虽然读取速度仅为设备最大能力的1/20,但成功恢复了40年历史存储设备中的数据。完整代码已开源在GitHub仓库供参考使用。更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/公众号二维码。

codeshare1135的博客 620

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: goahead 2.1.8 移植
下一篇: debian 系列 ubuntu..让一个网卡支持多个IP
brauceunix
博客等级 码龄16年 26粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值