如何对Linux系统进行基准测试5工具UnixBench

news/2024/11/13 11:12:40/文章来源:https://www.cnblogs.com/testing-/p/18299319

UnixBench

UnixBench是一款跨平台基准测试工具,用于评估各种类Unix系统(包括Linux、BSD和macOS)的系统性能。它提供了一套全面的测试套件,可评估系统性能的不同方面,包括:

  • 系统调用: 此测试衡量进行系统调用的开销,系统调用是应用程序与操作系统内核交互的主要方式。
  • 文件系统: 此测试评估文件系统操作的性能,例如读取、写入和创建文件。
  • 进程: 此测试评估进程创建、上下文切换和进程间通信 (IPC) 的效率。
  • 管道: 此测试衡量使用管道(一种简单的 IPC 形式)在进程之间传输数据的性能。
  • 数学: 此测试评估基本数学运算的性能,例如加、减、乘、除。
  • 字符串: 此测试评估字符串操作操作的性能,例如复制、搜索和比较字符串。
  • 2D 图形: 此测试衡量基本 2D 图形操作的性能,例如绘制线条、填充多边形和图像操作。
  • 3D 图形: 此测试评估 3D 图形操作的性能,例如三角形渲染、纹理映射和照明计算。
  • C 库: 此测试评估 C 标准库中常用函数的性能。
  • 网络: 此测试衡量网络操作的性能,例如发送和接收数据以及建立连接。

UnixBench为每个测试生成分数和总体系统分数,可用于比较不同系统的性能。分数越高,性能越好。但是,需要注意的是,基准测试结果会受到各种因素的影响,例如硬件配置、操作系统版本和特定工作负载。

UnixBench对于系统管理员和性能爱好者来说是个宝贵的工具,用于评估类Unix系统的整体性能并识别潜在的瓶颈。它还可以用于跟踪随着时间的推移的性能改进或比较不同硬件配置的性能。

以下是一些有关UnixBench的其他注意事项:

  • 开源: UnixBench是一款开源工具(GPLv2),可供任何人免费使用和修改。这促进了透明度,并允许社区贡献来改进工具。
  • 跨平台: UnixBench可在各种类Unix系统上运行,使其成为跨平台比较性能的通用工具。
  • 定制: UnixBench允许自定义测试套件以专注于特定感兴趣的领域,例如CPU密集型或I/O约束型任务。
  • 解释: 基准测试结果应与其他因素(例如特定工作负载和硬件配置)结合起来解释,以全面了解系统性能。

如果您的系统有多个CPU,默认情况下会将所选测试运行两次,一次运行每个测试程序的一个副本,另一次运行N个副本,其中N是CPU的数量。这样做的目的是让您能评估

  • 运行单个任务时的系统性能
  • 运行多个任务时的系统性能
  • 系统实施并行处理的收益

UnixBench的具体测试项:

  • Dhrystone 2 using register variables

用于评估处理器的整数性能。它通过运行一系列模拟实际应用程序中常见操作的程序来衡量处理器执行整数运算的速度。

在Dhrystone 2基准测试中,使用寄存器变量可以潜在提高代码性能,方法是减少访问数据所需的时间。寄存器变量存储在CPU的寄存器中,而寄存器的访问速度比内存位置快得多。通过将经常使用的变量声明为寄存器变量,编译器可以优化代码以将这些变量保存在寄存器中,从而减少对内存的访问需求并提高整体性能。

使用寄存器变量的有效性取决于多个因素,包括特定的编译器、CPU架构以及代码本身的特性。过度激进地使用寄存器声明甚至会导致性能下降,如果寄存器没有得到有效管理。

该基准用于测量和比较计算机的性能。由于没有浮点运算,因此测试重点是字符串处理。硬件和软件设计、编译器和链接器选项、代码优化、高速缓冲存储器、等待状态和整数数据类型对其影响很大。

  • Double-Precision Whetstone

测量浮点运算的速度和效率。该测试包含多个模块,旨在体现科学应用中通常执行的各种操作。使用了各种C函数,包括 sin、cos、sqrt、exp和log,以及整数和浮点数学运算、数组访问、条件分支和过程调用。该测试同时测量整数和浮点运算。

  • Execl Throughput(执行吞吐量):

该测试测量每秒可执行的 Execl 调用次数。Execl 是 exec 系列函数的一部分,可将当前进程映像替换为新进程映像。它和许多其他类似命令都是 execve() 函数的前端。

  • 文件复制:

它使用不同的缓冲区大小来测量数据从一个文件传输到另一个文件的速度。文件读取、写入和复制测试捕捉在指定时间(默认为 10 秒)内可写入、读取和复制的字符数。

  • 管道吞吐量:

管道是进程间最简单的通信形式。管道吞吐量是指进程向管道写入512字节并读回的次数(每秒)。管道吞吐量测试在实际编程中并不存在。

  • 基于管道的上下文切换:

该测试测量两个进程通过管道交换递增整数的次数。基于管道的上下文切换测试更像现实世界中的应用。测试程序会生成一个子进程,与之进行双向管道对话。

  • 进程创建:

该测试测量进程分叉并产生一个立即退出的子进程的次数。进程创建指的是为新进程实际创建进程控制块和内存分配,因此这直接关系到内存带宽。通常,该基准用于比较操作系统进程创建调用的各种实现。

  • shell 脚本

shell脚本测试测量的是进程每分钟可启动和获取一组1、2、4和8个并发 shell 脚本副本的次数,其中shell脚本将对数据文件进行一系列转换。

  • System Call Overhead(系统调用开销):

估算进入和离开操作系统内核的成本,即执行系统调用的开销。它包括一个重复调用 getpid(返回调用进程的进程ID)系统调用的简单程序。执行此类调用的时间可用于估算进入和退出内核的成本。

  • 图形测试:

提供二维和三维图形测试;目前,三维测试套件非常有限,只有"ubgears"程序。这些测试旨在为系统的2D和3D图形性能提供一个非常粗略的概念。当然,请记住,报告的性能不仅取决于硬件,还取决于系统是否有相应的驱动程序。

您可以从这里下载最新版本:https://github.com/kdlucas/byte-unixbench

安装和运行测试:

$ git clone https://github.com/kdlucas/byte-unixbench
$ cd byte-unixbench/UnixBench
$ make
$ sudo ./Run
$ sudo ./Run
[sudo] password for xurongzhong:
make all
make[1]: Entering directory `/home/xurongzhong/byte-unixbench/UnixBench'
make distr
make[2]: Entering directory `/home/xurongzhong/byte-unixbench/UnixBench'
Checking distribution of files
./pgms  exists
./src  exists
./testdir  exists
./tmp  exists
./results  exists
make[2]: Leaving directory `/home/xurongzhong/byte-unixbench/UnixBench'
make programs
make[2]: Entering directory `/home/xurongzhong/byte-unixbench/UnixBench'
make[2]: Nothing to be done for `programs'.
make[2]: Leaving directory `/home/xurongzhong/byte-unixbench/UnixBench'
make[1]: Leaving directory `/home/xurongzhong/byte-unixbench/UnixBench'
sh: 3dinfo: command not found#    #  #    #  #  #    #          #####   ######  #    #   ####   #    ##    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    ##    #  # #  #  #    ##            #####   #####   # #  #  #       #######    #  #  # #  #    ##            #    #  #       #  # #  #       #    ##    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #####   #    #  #  #    #          #####   ######  #    #   ####   #    #Version 5.1.3                      Based on the Byte Magazine Unix BenchmarkMulti-CPU version                  Version 5 revisions by Ian Smith,Sunnyvale, CA, USAJanuary 13, 2011                   johantheghost at yahoo period com------------------------------------------------------------------------------Use directories for:* File I/O tests (named fs***) = /home/xurongzhong/byte-unixbench/UnixBench/tmp* Results                      = /home/xurongzhong/byte-unixbench/UnixBench/results
------------------------------------------------------------------------------1 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 101 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 101 x Execl Throughput  1 2 31 x File Copy 1024 bufsize 2000 maxblocks  1 2 31 x File Copy 256 bufsize 500 maxblocks  1 2 31 x File Copy 4096 bufsize 8000 maxblocks  1 2 31 x Pipe Throughput  1 2 3 4 5 6 7 8 9 101 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 101 x Process Creation  1 2 31 x System Call Overhead  1 2 3 4 5 6 7 8 9 101 x Shell Scripts (1 concurrent)  1 2 31 x Shell Scripts (8 concurrent)  1 2 356 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 1056 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 1056 x Execl Throughput  1 2 356 x File Copy 1024 bufsize 2000 maxblocks  1 2 356 x File Copy 256 bufsize 500 maxblocks  1 2 356 x File Copy 4096 bufsize 8000 maxblocks  1 2 356 x Pipe Throughput  1 2 3 4 5 6 7 8 9 1056 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 1056 x Process Creation  1 2 356 x System Call Overhead  1 2 3 4 5 6 7 8 9 1056 x Shell Scripts (1 concurrent)  1 2 356 x Shell Scripts (8 concurrent)  1 2 3========================================================================BYTE UNIX Benchmarks (Version 5.1.3)System: localhost.localdomain: GNU/LinuxOS: GNU/Linux -- 3.10.0-1160.119.1.el7.x86_64 -- #1 SMP Tue Jun 4 14:43:51 UTC 2024Machine: x86_64 (x86_64)Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")CPU 0: Intel(R) Xeon(R) Gold 6348 CPU @ 2.60GHz (5200.0 bogomips)Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization...CPU 55: Intel(R) Xeon(R) Gold 6348 CPU @ 2.60GHz (5234.1 bogomips)Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization17:47:27 up 2 days, 21:44, 10 users,  load average: 1.86, 2.10, 1.68; runlevel 2024-07-09------------------------------------------------------------------------
Benchmark Run: Fri Jul 12 2024 17:47:27 - 18:16:27
56 CPUs in system; running 1 parallel copy of testsDhrystone 2 using register variables       37086745.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     4004.8 MWIPS (9.5 s, 7 samples)
Execl Throughput                               1246.1 lps   (29.6 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        598492.2 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          163845.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2035859.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1396781.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  55716.4 lps   (10.0 s, 7 samples)
Process Creation                               1856.3 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2251.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2065.8 lpm   (60.0 s, 2 samples)
System Call Overhead                        1422058.9 lps   (10.0 s, 7 samples)System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   37086745.6   3178.0
Double-Precision Whetstone                       55.0       4004.8    728.1
Execl Throughput                                 43.0       1246.1    289.8
File Copy 1024 bufsize 2000 maxblocks          3960.0     598492.2   1511.3
File Copy 256 bufsize 500 maxblocks            1655.0     163845.8    990.0
File Copy 4096 bufsize 8000 maxblocks          5800.0    2035859.6   3510.1
Pipe Throughput                               12440.0    1396781.3   1122.8
Pipe-based Context Switching                   4000.0      55716.4    139.3
Process Creation                                126.0       1856.3    147.3
Shell Scripts (1 concurrent)                     42.4       2251.3    531.0
Shell Scripts (8 concurrent)                      6.0       2065.8   3442.9
System Call Overhead                          15000.0    1422058.9    948.0========
System Benchmarks Index Score                                         849.2------------------------------------------------------------------------
Benchmark Run: Fri Jul 12 2024 18:16:27 - 18:44:39
56 CPUs in system; running 56 parallel copies of testsDhrystone 2 using register variables     2097477411.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                   226690.9 MWIPS (9.9 s, 7 samples)
Execl Throughput                              33437.2 lps   (29.5 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1533720.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          382616.6 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       6047258.8 KBps  (30.0 s, 2 samples)
Pipe Throughput                            77978504.1 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                2748800.6 lps   (10.0 s, 7 samples)
Process Creation                             170992.2 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                 204598.7 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                  24199.0 lpm   (60.0 s, 2 samples)
System Call Overhead                       79596405.6 lps   (10.0 s, 7 samples)System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0 2097477411.1 179732.4
Double-Precision Whetstone                       55.0     226690.9  41216.5
Execl Throughput                                 43.0      33437.2   7776.1
File Copy 1024 bufsize 2000 maxblocks          3960.0    1533720.9   3873.0
File Copy 256 bufsize 500 maxblocks            1655.0     382616.6   2311.9
File Copy 4096 bufsize 8000 maxblocks          5800.0    6047258.8  10426.3
Pipe Throughput                               12440.0   77978504.1  62683.7
Pipe-based Context Switching                   4000.0    2748800.6   6872.0
Process Creation                                126.0     170992.2  13570.8
Shell Scripts (1 concurrent)                     42.4     204598.7  48254.4
Shell Scripts (8 concurrent)                      6.0      24199.0  40331.7
System Call Overhead                          15000.0   79596405.6  53064.3========
System Benchmarks Index Score                                       19616.4

以上操作系统:CentOS Linux release 7.9.2009 (Core),服务器:Supermicro Super Server SMC X12

  • 广电五舟发布鲲鹏服务器S627K2测试

操作系统:openEuler release 22.03 (LTS-SP4)

   BYTE UNIX Benchmarks (Version 5.1.3)System: localhost.localdomain: GNU/LinuxOS: GNU/Linux -- 5.10.0-216.0.0.115.oe2203sp4.aarch64 -- #1 SMP Thu Jun 27 15:22:10 CST 2024Machine: aarch64 (aarch64)Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")CPU 0:  (200.0 bogomips)
...CPU 127:  (200.0 bogomips)19:03:20 up 3 days,  2:19,  5 users,  load average: 1.02, 1.12, 1.07; runlevel 2024-07-10------------------------------------------------------------------------
Benchmark Run: Fri Jul 12 2024 19:03:20 - 19:31:28
128 CPUs in system; running 1 parallel copy of testsDhrystone 2 using register variables       42056424.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     4475.6 MWIPS (10.0 s, 7 samples)
Execl Throughput                               3271.3 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        743479.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          222004.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2161717.7 KBps  (30.0 s, 2 samples)
Pipe Throughput                              984465.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 164087.2 lps   (10.0 s, 7 samples)
Process Creation                               6467.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   6613.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   4519.1 lpm   (60.0 s, 2 samples)
System Call Overhead                         778479.8 lps   (10.0 s, 7 samples)System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   42056424.6   3603.8
Double-Precision Whetstone                       55.0       4475.6    813.8
Execl Throughput                                 43.0       3271.3    760.8
File Copy 1024 bufsize 2000 maxblocks          3960.0     743479.4   1877.5
File Copy 256 bufsize 500 maxblocks            1655.0     222004.0   1341.4
File Copy 4096 bufsize 8000 maxblocks          5800.0    2161717.7   3727.1
Pipe Throughput                               12440.0     984465.6    791.4
Pipe-based Context Switching                   4000.0     164087.2    410.2
Process Creation                                126.0       6467.8    513.3
Shell Scripts (1 concurrent)                     42.4       6613.3   1559.7
Shell Scripts (8 concurrent)                      6.0       4519.1   7531.9
System Call Overhead                          15000.0     778479.8    519.0========
System Benchmarks Index Score                                        1290.2------------------------------------------------------------------------
Benchmark Run: Fri Jul 12 2024 19:31:28 - 20:01:04
128 CPUs in system; running 128 parallel copies of testsDhrystone 2 using register variables     4264071560.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                   453663.9 MWIPS (8.8 s, 7 samples)
Execl Throughput                              28547.4 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks      48631837.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks        24668291.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks     100610677.0 KBps  (30.0 s, 2 samples)
Pipe Throughput                           120629456.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching               18063898.2 lps   (10.0 s, 7 samples)
Process Creation                              68547.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                 133329.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                  18785.4 lpm   (60.2 s, 2 samples)
System Call Overhead                       98134546.0 lps   (10.0 s, 7 samples)System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0 4264071560.6 365387.5
Double-Precision Whetstone                       55.0     453663.9  82484.3
Execl Throughput                                 43.0      28547.4   6638.9
File Copy 1024 bufsize 2000 maxblocks          3960.0   48631837.6 122807.7
File Copy 256 bufsize 500 maxblocks            1655.0   24668291.9 149053.1
File Copy 4096 bufsize 8000 maxblocks          5800.0  100610677.0 173466.7
Pipe Throughput                               12440.0  120629456.6  96969.0
Pipe-based Context Switching                   4000.0   18063898.2  45159.7
Process Creation                                126.0      68547.0   5440.2
Shell Scripts (1 concurrent)                     42.4     133329.3  31445.6
Shell Scripts (8 concurrent)                      6.0      18785.4  31309.1
System Call Overhead                          15000.0   98134546.0  65423.0========
System Benchmarks Index Score                                       56115.2

基准值

UnixBench中的基准值是指每个子测试项的参考值,用来衡量该子测试项的性能水平。基准值通常是该子测试项在特定硬件平台上的预期性能。例如在 Dhrystone测试中基准值为 1750 MIPS。

UnixBench中的基准值最初是在1995年由UnixBench的作者Michael Bach设定的。他使用一台SPARCstation 20-61工作站作为参考平台,并测量了该平台上各个子测试项的性能。然后,他将这些性能值作为基准值。

UnixBench中的基准值并不是固定的,它们会随着硬件技术的进步而不断更新。例如UnixBench 5.1.2版本中,Dhrystone测试的基准值从1750 MIPS更新为2200MIPS。

以下是UnixBench 5.1.2版本中各个子测试项的基准值:

子测试项 基准值
Dhrystone 2200 MIPS
Whetstone 56000 WIPS
Execl Throughput 33000 calls/sec
File Copy 1024 bufsize 10000000 bytes/sec
File Copy 256 bufsize 5000000 bytes/sec
File Copy 4096 bufsize 20000000 bytes/sec
Pipe Throughput 10000000 bytes/sec
Pipe-based Context Switching 5000000 switches/sec
Process Creation 5000 processes/sec
Shell Scripts (1 concurrent) 10000000 instructions/sec
Shell Scripts (8 concurrent) 80000000 instructions/sec
System Call Overhead 10000000 calls/sec

参考资料

  • 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
  • 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
  • python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
  • Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html

System Benchmarks Index Score的计算

UnixBench的System Benchmarks Index Score是通过对各个子测试项的单项性能分数进行加权平均计算得出的。每个子测试项的单项性能分数又通过对原始测试结果进行指数运算得到。

具体来说,计算步骤如下:

  • 计算每个子测试项的原始测试结果: 每个子测试项都会输出一个原始测试结果,该结果通常表示为每秒执行的操作数或每秒传输的数据量。例如,在 File Copy 测试中,原始测试结果表示每秒复制的文件大小。

  • 计算每个子测试项的单项性能分数: 对于每个子测试项,根据其原始测试结果和基准值,使用指数运算计算其单项性能分数。指数运算公式:score = exp(product / 2)。其中:score 是单项性能分数;product 是原始测试结果和基准值的乘积;exp是自然指数函数。

基准值是每个子测试项的参考值,用来衡量该子测试项的性能水平。基准值通常是该子测试项在特定硬件平台上的预期性能。例如,在 Dhrystone 测试中,基准值为 1750 MIPS。

  • 计算 System Benchmarks Index Score: 将每个子测试项的单项性能分数乘以其对应的权重,然后求和,最后再进行指数运算,得 System Benchmarks Index Score。指数运算公式:Score = exp(average(score * weight))。其中:Score是 System Benchmarks Index Score;average 是加权平均函数;score 是每个子测试项的单项性能分数;weight 是每个子测试项的权重。

权重是每个子测试项在 System Benchmarks Index Score 中所占的比例。权重值通常根据每个子测试项的重要性来分配。例如,在UnixBench中,Dhrystone 和 Whetstone 测试的权重较高,因为它们衡量的是 CPU 的整数和浮点性能,而这些性能在许多应用程序中都很重要。

以下是 UnixBench 中各个子测试项的权重:

子测试项 权重
Dhrystone 0.17
Whetstone 0.17
Execl Throughput 0.10
File Copy 1024 bufsize 0.05
File Copy 256 bufsize 0.05
File Copy 4096 bufsize 0.05
Pipe Throughput 0.05
Pipe-based Context Switching 0.05
Process Creation 0.05
Shell Scripts (1 concurrent) 0.05
Shell Scripts (8 concurrent) 0.05
System Call Overhead 0.10

System Benchmarks Index Score 只是一个综合性指标,并不能完全反映所有类型的应用程序性能。在评估计算机性能时,应综合考虑多种因素,包括 CPU 性能、内存带宽、存储性能和 I/O 性能等。

其他

如果不需要进行图形测试或者不在图形化界面下测试,则将Makefile文件中GRAPHIC_TESTS = defined注释掉,默认是关闭的。

默认测试完成后测试结果存放在results目录:

UnixBench由于多年没有更新,已经廉颇老矣,建议综合参考Sysbench、GeekBench等工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/742961.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决vscode项目中无法识别宏定义的问题

在c_cpp_properties.json中的"defines":[]中定义的宏无法被识别。 从而导致代码中的宏开关无法生效,造成代码的阅读不便利。 排查路线是: 关闭所有插件,删除当前工程目录下的.vscode文件夹。 经过一系列排查发现是C/C++插件与clangd插件有冲突, 解决方法很简单,…

vs使用AnkhSVN冲突

he problem seems to be the (as the error hints) the propertybag within the solution file问题似乎是解决方案文件中的 propertybag(如错误提示的那样) So a work around of this issue:因此,此问题的解决方法:You have a "solution.sln" created with VS 20…

0175-GDB 调试 multiboot 启动

环境Time 2022-11-12 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05前言 说明 参考:https://os.phil-opp.com/multiboot-kernel/ 目标 使用编写好的内核可执行文件,直接从 QEMU 启动,启动时暂停 CPU,使用 GDB 调试。 汇编代码 section .multiboot_header header_start:dd 0x1B…

0172-执行内核文件

环境Time 2022-11-11 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05前言 说明 参考:https://os.phil-opp.com/multiboot-kernel/ 目标 将编写好的内核可执行文件,制作成 ISO 镜像,然后从 QEMU 启动。 建立文件目录 isofiles └── boot├── grub│ └── grub.cfg└── …

TDA4VM-SK配置与应用杂谈

TDA4VM-SK配置与应用杂谈硬件信息:SK-TDA4VM 用户指南处理器SDK Linux边缘AI文档配置文档:SK-TDA4VM处理器SDK Linux文档-getting_started,详细说明了如何配置,下面是简要步骤:物料准备: SK板,microUSB串口线,USB camera,HDMI/DP显示器,≥16GB的内存卡,网线和局域网…

(技术贴)英雄无敌1——永久记住所学魔法——手把手教你怎么修改

喜欢英雄无敌1的朋友都知道,在1中英雄学习魔法只是记忆了该魔法的使用次数,一旦次数使用完,该魔法就会从魔法书中消失!而要想再次使用该魔法,就得去具有该魔法的魔法公会再次学习一次,自然这很不符合魔法学习的实际情况。我这里将其修改为,学过的魔法永远记住!但是学过…

连接mysql时提示is not allowed to connect不允许连接

1. 进入mysql服务器,mysql -u root -p 登录myql服务,SELECT user, host FROM mysql.user;看到root只允许localhost本机连接 2. 执行use mysql; update user set host = % where user = root; 再次查看user表,root允许所有ip连接 3.刷新缓存FLUSH PRIVILEGES; 以上仅供参考…

LCA 补充

LCA 之前学废了,回来补。 倍增版 首先是最常见的倍增版子,思路好理解,按倍增记录 \(father\),然后同时往上跳。 注意最后跳到的是那个 \(x \ne y\) 的,也就是 \(lca\) 的儿子,所以最后要返回父亲。 #include<bits/stdc++.h> using namespace std; const int N = 5e…

读人工智能全传11人工智能会出什么错

读人工智能全传11人工智能会出什么错1. 人工智能会出什么错 1.1. 一些报道是公正合理的,不过坦白地说,大部分报道都愚蠢得无可救药 1.2. 一些报道颇有知识性和引导性,而大部分则是杞人忧天式的恐吓 1.3. 滑稽的报道迎合了大众对人工智能的“终结者式恐惧” 1.3.1. 我们创造出…

dotnet 理解 X11 的 24 位或 32 位色深窗口

本文记录在 X11 里面的窗口与颜色的位色深关系本文属于学习 CPF 框架博客,感谢小红帽的 CPF 框架。更多关于 CPF 框架,请参阅 https://gitee.com/csharpui/CPF 本文这里的 24 色或 32 色表示的是用多少个 bit 表示一个像素的颜色。比如常见的 24 色就是 RGB 三个颜色分量,一…

【C++】const与constexpr

const 用于声明该变量是一个常量。 可以用来声明成员函数,表示该函数不会改变成员变量。 const修饰指针的场景稍微复杂点,可以通过循环的方式记忆:constexpr constexpr 它是在 C++ 11 被引进的,它的字面意思是 constant expression,常量表达式。它可以作用在变量和函数上。…

ubuntu搭建docker harbor实录

一、搭建前提 一台2C2G ubuntu 18.04.6版本主机 配置好网络、ntp,关闭ufw二、搭建步骤 1、安装docker engine、docker-compose等 设置 Docker 的存储库# Add Dockers official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 …