828华为云征文 | Flexus X实例CPU、内存及磁盘性能实测与分析
引言
随着云计算的普及,企业对于云资源的需求日益增加,而选择一款性能强劲、稳定性高的云实例成为了关键。华为云Flexus X实例作为华为云最新推出的高性能实例,旨在为用户提供更强的计算能力和更高的网络带宽支持。最近华为云828 B2B企业节正在举办,Flexus X实例的促销也非常给力,大家可以去看看。为了帮助用户更好地了解其性能表现,我们通过一系列详尽的测试,对Flexus X实例的各项性能进行了全面评测,包括CPU性能、内存性能、磁盘I/O性能以及网络性能。
本文的目的是通过实测数据来分析Flexus X实例的表现,以帮助用户在选择云服务时做出更明智的决策。
1. 测试环境与方法介绍
为了确保评测结果的准确性与公正性,我们在标准化的环境下进行了多次性能测试。以下是测试环境的配置以及所使用的工具和参数介绍。
1.1 测试工具选择
在云实例性能评测中,选择合适的测试工具至关重要。本次评测中,我们使用了开源的多线程性能测试工具 **sysbench**。sysbench 是一款广泛用于评估系统、数据库和硬件性能的工具,支持多种测试模式,如 CPU、内存、磁盘 I/O 以及数据库基准测试。凭借其灵活性和易用性,sysbench 能够帮助用户快速识别性能瓶颈并优化系统效率,是系统管理员和开发者的理想选择。
1.2 测试参数设置
为了确保结果的客观性,我们在测试中使用了统一的参数配置。具体包括:
- CPU测试:采用 sysbench 的“cpu”模块,执行固定数量的计算任务,以评估多核的计算能力。
- 内存测试:使用 sysbench 的“memory”模块,通过大量的内存读写操作测试内存的吞吐量。
- 磁盘I/O测试:使用 sysbench 进行顺序读写和随机读写测试,评估磁盘的响应速度和吞吐能力。
2. sysbench的安装
2.1 安装文件下载
可以采用以下命令获取安装文件
wget https://github.com/akopytov/sysbench/archive/refs/tags/1.0.20.tar.gz
不过由于网络限制,直接用wget命令下载没有成功。
于是采用先下载到本地,然后上传到服务器的方法。
在github上下载sysbench-1.0.20.tar.gz文件,再使用XFTP上传到服务器/usr/local/sysbench目录。
执行解压命令
tar -zxf sysbench-1.0.20.tar.gz
2.2 构建安装编译
构建sysbench的时候,碰到了问题,主要是缺少了依赖,也就Euler系统默认没有安装相关依赖,需要手动安装一下。
依赖1:automake
[root@flexusx-e724 sysbench-1.0.20]# ./autogen.sh
automake 1.10.x (aclocal) wasn't found, exiting
yum install automake
依赖2:libtool
[root@flexusx-e724 sysbench-1.0.20]# ./autogen.sh
libtoolize 1.4+ wasn't found, exiting
yum install libtool
./autogen.sh
由于本次测试不涉及到数据库的测试,而sysbench默认需要服务器,使用./configure默认安装就会报错。
ERROR: cannot find MySQL libraries. If you want to compile with MySQL support,
please install the package containing MySQL client libraries and headers.
On Debian-based systems the package name is libmysqlclient-dev.
On RedHat-based systems, it is mysql-devel.
If you have those libraries installed in non-standard locations,
you must either specify file locations explicitly using
--with-mysql-includes and --with-mysql-libs options, or make sure path to
mysql_config is listed in your PATH environment variable. If you want to
disable MySQL support, use --without-mysql option.
需要增加配置参数,--without-mysql,不安装对mysql数据库的支持。
./configure --without-mysql
后面再进行make编译
# make -j
# make install
这样就完成了对sysbench的安装。
[root@flexusx-e724 sysbench-1.0.20]# sysbench
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Reading the script from the standard input:
3. CPU性能评测
在云计算中,CPU性能直接影响到计算密集型任务的执行效率。Flexus X实例配备了最新一代的处理器,具备较高的主频和多核支持。我们通过sysbench的cpu模块对其进行了测试,针对多核的计算能力进行了测评。
评测命令
sysbench --threads=4 --time=60 --report-interval=5 cpu run
上述命令用于运行 sysbench 的 CPU 性能测试,并指定了多个参数:
- --threads=4:设置线程数为 4,即同时使用 4 个线程进行测试,模拟多线程的运行环境。
- --time=60:测试持续时间为 60 秒。
- --report-interval=5:每 5 秒输出一次测试报告,显示当前的性能情况。
- cpu run:表示运行 sysbench 的 CPU 测试模块,用以评估 CPU 的计算能力。
该命令通过多线程和固定时间的测试,帮助用户了解 CPU 在高负载下的性能表现。
命令执行结果
[root@flexusx-e724 sysbench-1.0.20]# sysbench --threads=4 --time=60 --report-interval=5 cpu run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 4
Report intermediate results every 5 second(s)
Initializing random number generator from current time
Prime numbers limit: 10000
Initializing worker threads...
Threads started!
[ 5s ] thds: 4 eps: 11665.83 lat (ms,95%): 0.35
[ 10s ] thds: 4 eps: 11681.04 lat (ms,95%): 0.35
[ 15s ] thds: 4 eps: 11685.81 lat (ms,95%): 0.35
[ 20s ] thds: 4 eps: 11654.99 lat (ms,95%): 0.35
[ 25s ] thds: 4 eps: 11658.59 lat (ms,95%): 0.35
[ 30s ] thds: 4 eps: 11680.61 lat (ms,95%): 0.35
[ 35s ] thds: 4 eps: 11680.39 lat (ms,95%): 0.35
[ 40s ] thds: 4 eps: 11696.60 lat (ms,95%): 0.35
[ 45s ] thds: 4 eps: 11697.60 lat (ms,95%): 0.35
[ 50s ] thds: 4 eps: 11683.61 lat (ms,95%): 0.35
[ 55s ] thds: 4 eps: 11686.18 lat (ms,95%): 0.35
CPU speed:
events per second: 11678.94
General statistics:
total time: 60.0016s
total number of events: 700772
Latency (ms):
min: 0.34
avg: 0.34
max: 9.32
95th percentile: 0.35
sum: 239884.73
Threads fairness:
events (avg/stddev): 175193.0000/106.72
execution time (avg/stddev): 59.9712/0.00
在多核测试中,我们调动了Flexus X实例的所有可用核,测试其并行计算能力。随着核数的增加,CPU的总吞吐量显著提升。对于需要多线程处理的大规模并行任务,如视频编码、数据分析等,Flexus X实例表现出色,能够有效减少任务的执行时间。
4. 内存性能评测
内存的读写速度对很多应用的性能有着直接影响,尤其是在处理大规模数据集时,内存的吞吐量决定了数据处理的效率。通过sysbench的memory模块,我们对Flexus X实例的内存性能进行了详细测试。
4.1 内存读取性能
在内存读取测试中,Flexus X实例展现了快速的读取能力,尤其是在处理大量小数据块时,实例能够迅速响应并读取数据。这使得在大数据分析和实时应用场景中,内存性能能够支撑系统的高效运行。
内存读取评测命令
sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=read --memory-access-mode=rnd run
上述命令用于运行 sysbench 的内存性能测试,并指定了多个参数:
- memory:表示运行 sysbench 的内存测试模块。
- --memory-block-size=8K:每次操作的内存块大小为 8KB。
- --memory-total-size=10G:测试过程中读写的内存总量为 10GB。
- --memory-oper=read:执行内存读取操作,专注于读取性能的评估。
- --memory-access-mode=rnd:内存访问模式为随机(random),即随机访问内存地址进行读操作。
该命令通过模拟随机读操作,评估内存在高负载下的随机读性能表现。
评测结果如下
[root@flexusx-e724 sysbench-1.0.20]# sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=read --memory-access-mode=rnd run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Running memory speed test with the following options:
block size: 8KiB
total size: 10240MiB
operation: read
scope: global
Initializing worker threads...
Threads started!
Total operations: 1310720 (289931.66 per second)
10240.00 MiB transferred (2265.09 MiB/sec)
General statistics:
total time: 4.5191s
total number of events: 1310720
Latency (ms):
min: 0.00
avg: 0.00
max: 0.03
95th percentile: 0.00
sum: 4385.45
Threads fairness:
events (avg/stddev): 1310720.0000/0.00
execution time (avg/stddev): 4.3855/0.00
4.2 内存写入性能
内存写入测试中,Flexus X实例同样表现优异,数据写入速度较快且稳定。对于需要频繁数据写入的任务,如日志记录、数据库操作等,Flexus X的内存性能表现足够支持高频写入操作,且没有出现明显的延迟或瓶颈。
内存写入评测命令
sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=write run
上述命令用于运行 sysbench 的内存写入性能测试,并指定了以下参数:
- memory:表示运行 sysbench 的内存测试模块。
- --memory-block-size=8K:每次操作的内存块大小为 8KB。
- --memory-total-size=10G:测试过程中写入的内存总量为 10GB。
- --memory-oper=write:执行内存写入操作,专注于评估写入性能。
该命令通过模拟大量内存写入操作,评估系统在处理大量数据写入时的内存性能表现。
评测结果如下
[root@flexusx-e724 sysbench-1.0.20]# sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=write run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Running memory speed test with the following options:
block size: 8KiB
total size: 10240MiB
operation: write
scope: global
Initializing worker threads...
Threads started!
Total operations: 1310720 (2363326.13 per second)
10240.00 MiB transferred (18463.49 MiB/sec)
General statistics:
total time: 0.5530s
total number of events: 1310720
Latency (ms):
min: 0.00
avg: 0.00
max: 0.01
95th percentile: 0.00
sum: 440.39
Threads fairness:
events (avg/stddev): 1310720.0000/0.00
execution time (avg/stddev): 0.4404/0.00
5. 磁盘I/O性能评测
磁盘I/O性能对云实例的存储操作影响巨大,特别是在需要频繁读写数据的应用中。我们通过fio对Flexus X实例的磁盘性能进行了顺序读写和随机读写测试。
5.1 顺序读写性能
在顺序读写测试中,Flexus X实例表现出色,磁盘的顺序读写速度非常快,能够支持大文件的快速读写操作。这使得在视频流处理、文件备份等场景中,Flexus X能够快速处理数据,提升系统整体性能。
使用命令
sysbench --threads=4 --time=60 --report-interval=5 fileio --file-num=2 --file-total-size=20G --file-test-mode=seqwr prepare
进行评测数据准备
[root@flexusx-e724 sysbench-1.0.20]# sysbench --threads=4 --time=60 --report-interval=5 fileio --file-num=2 --file-total-size=20G --file-test-mode=seqwr prepare
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
2 files, 10485760Kb each, 20480Mb total
Creating files for the test...
Extra file open flags: (none)
Creating file test_file.0
Creating file test_file.1
21474836480 bytes written in 136.52 seconds (150.01 MiB/sec).
顺序读写评测命令
sysbench --threads=4 --time=60 --report-interval=5 fileio --file-num=2 --file-total-size=20G --file-test-mode=seqwr run
上述命令用于运行 sysbench 的磁盘I/O性能测试,主要针对顺序写操作,并指定了以下参数:
- --threads=4:设置线程数为 4,表示同时使用 4 个线程进行测试。
- --time=60:测试持续时间为 60 秒。
- --report-interval=5:每 5 秒输出一次测试报告,显示当前的性能情况。
- fileio:表示运行 sysbench 的文件I/O测试模块。
- --file-num=2:创建 2 个文件用于测试。
- --file-total-size=20G:测试文件的总大小为 20GB。
- --file-test-mode=seqwr:测试模式为顺序写(sequential write),即按照顺序向文件写入数据。
该命令用于评估系统磁盘的顺序写性能,模拟在多线程环境下处理大文件写入的表现。
评测结果如下
[root@flexusx-e724 sysbench-1.0.20]# sysbench --threads=4 --time=60 --report-interval=5 fileio --file-num=2 --file-total-size=20G --file-test-mode=seqwr run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 4
Report intermediate results every 5 second(s)
Initializing random number generator from current time
Extra file open flags: (none)
2 files, 10GiB each
20GiB total file size
Block size 16KiB
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing sequential write (creation) test
Initializing worker threads...
Threads started!
[ 5s ] reads: 0.00 MiB/s writes: 179.94 MiB/s fsyncs: 229.33/s latency (ms,95%): 0.035
[ 10s ] reads: 0.00 MiB/s writes: 148.75 MiB/s fsyncs: 190.40/s latency (ms,95%): 0.034
[ 15s ] reads: 0.00 MiB/s writes: 149.37 MiB/s fsyncs: 191.20/s latency (ms,95%): 0.035
[ 20s ] reads: 0.00 MiB/s writes: 150.00 MiB/s fsyncs: 192.00/s latency (ms,95%): 0.033
[ 25s ] reads: 0.00 MiB/s writes: 148.75 MiB/s fsyncs: 190.40/s latency (ms,95%): 0.035
[ 30s ] reads: 0.00 MiB/s writes: 150.00 MiB/s fsyncs: 192.00/s latency (ms,95%): 0.035
[ 35s ] reads: 0.00 MiB/s writes: 148.75 MiB/s fsyncs: 190.40/s latency (ms,95%): 0.035
[ 40s ] reads: 0.00 MiB/s writes: 150.00 MiB/s fsyncs: 192.00/s latency (ms,95%): 0.035
[ 45s ] reads: 0.00 MiB/s writes: 148.75 MiB/s fsyncs: 190.40/s latency (ms,95%): 0.035
[ 50s ] reads: 0.00 MiB/s writes: 150.00 MiB/s fsyncs: 192.00/s latency (ms,95%): 0.034
[ 55s ] reads: 0.00 MiB/s writes: 150.00 MiB/s fsyncs: 192.00/s latency (ms,95%): 0.035
[ 60s ] reads: 0.00 MiB/s writes: 148.75 MiB/s fsyncs: 190.40/s latency (ms,95%): 0.035
File operations:
reads/s: 0.00
writes/s: 9625.38
fsyncs/s: 192.62
Throughput:
read, MiB/s: 0.00
written, MiB/s: 150.40
General statistics:
total time: 60.6091s
total number of events: 595067
Latency (ms):
min: 0.01
avg: 0.41
max: 724.54
95th percentile: 0.03
sum: 242281.89
Threads fairness:
events (avg/stddev): 148766.7500/1811.96
execution time (avg/stddev): 60.5705/0.00
5.2 随机读写性能
相比顺序读写,随机读写测试更具挑战性,因为它涉及多个小块数据的随机位置读写。在该测试中,Flexus X实例的表现依然稳健,尽管随机读写的速度较顺序读写有所下降,但整体依旧保持在较高水平,足以应对数据库查询等需要频繁小块数据读写的场景。
随机读写测试数据准备命令
sysbench --threads=32 --time=30 --test=fileio --file-num=1 --file-block-size=8192 --file-total-size=20G --file-test-mode=rndrw --verbosity=5 prepare
执行结果
[root@flexusx-e724 ~]# sysbench --threads=32 --time=30 --test=fileio --file-num=1 --file-block-size=8192 --file-total-size=20G --file-test-mode=rndrw --verbosity=5 prepare
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)1 files, 20971520Kb each, 20480Mb total
Creating files for the test...
Extra file open flags: (none)
Creating file test_file.0
21474836480 bytes written in 136.14 seconds (150.44 MiB/sec).
随机读写评测命令
sysbench --threads=4 --time=60 --report-interval=5 fileio --file-num=2 --file-total-size=20G --file-test-mode=seqwr run
上述命令用于运行 **sysbench** 的磁盘I/O性能测试,主要评估磁盘的随机读写性能。参数说明如下:
- --threads=32:设置为使用 32 个线程同时进行测试,模拟高并发环境下的性能。
- --time=30:测试持续时间为 30 秒。
- --test=fileio:运行 sysbench 的文件I/O测试模块。
- --file-num=1:测试时创建 1 个文件。
- --file-block-size=8192:设置文件块大小为 8192 字节(8KB)。
- --file-total-size=20G:测试文件的总大小为 20GB。
- --file-test-mode=rndrw:测试模式为随机读写,即随机地从文件中读取和写入数据。
- --verbosity=5:设置输出详细程度为 5,提供更详细的测试结果信息。
该命令通过多线程的随机读写操作,评估系统在高并发和大数据随机访问场景下的磁盘性能表现。
命令执行结果如下
[root@flexusx-e724 sysbench-1.0.20]# sysbench --threads=32 --time=30 --test=fileio --file-num=1 --file-block-size=8192 --file-total-size=20G --file-test-mode=rndrw --verbosity=5 run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 32
Initializing random number generator from current time
Extra file open flags: (none)
1 files, 20GiB each
20GiB total file size
Block size 8KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
DEBUG: Opening file: test_file.0
Initializing worker threads...
DEBUG: Worker thread (#0) started
DEBUG: Worker thread (#0) initialized
DEBUG: Worker thread (#1) started
… …
DEBUG: Worker thread (#30) initialized
DEBUG: Worker thread (#31) initialized
Threads started!
Time limit exceeded, exiting...
(last message repeated 31 times)
Done.
File operations:
reads/s: 5705.56
writes/s: 3803.67
fsyncs/s: 96.13
Throughput:
read, MiB/s: 44.57
written, MiB/s: 29.72
General statistics:
total time: 30.2080s
total number of events: 290141
Latency (ms):
min: 0.00
avg: 3.33
max: 930.12
95th percentile: 0.52
sum: 966180.93
Threads fairness:
events (avg/stddev): 9066.9062/942.78
execution time (avg/stddev): 30.1932/0.04
6. 评测结果分析与总结
通过一系列性能测试,华为云Flexus X 实例在 CPU、内存和磁盘 I/O 等多个方面均展现了出色的表现,特别是在多线程处理和大数据处理场景中,体现了极高的稳定性和可靠性。具体来看:
- 在CPU 性能方面,Flexus X 实例通过高效的多线程处理,在长时间计算任务中保持了优异的稳定性,表现出极小的执行时间偏差。
- 在内存性能测试中,实例的内存读写速度表现出色,均匀的线程执行时间进一步证明了其在高负载情况下的卓越处理能力。
- 对于磁盘 I/O,测试结果显示出极佳的读写效率,尤其是在随机读写场景下,Flexus X 实例表现出色,能够应对高并发的数据操作需求。
总体来说,华为云的 Flexus X 实例凭借其强大的硬件配置和优化的网络架构,成为了处理计算密集型、存储密集型以及网络密集型任务的理想选择。它不仅适用于企业级用户,还能很好地满足开发者和数据密集型应用的需求。
本次评测的结果充分展示了 Flexus X 实例的高性能与可靠性,特别是在需要高计算性能和大规模数据处理的场景下,其表现无疑具有显著优势。对于正在寻找高效云解决方案的用户,Flexus X 实例无疑是一个极具竞争力的选择,能够助力企业和开发者在实际应用中充分发挥其潜能。
相关文章:

828华为云征文 | Flexus X实例CPU、内存及磁盘性能实测与分析
引言 随着云计算的普及,企业对于云资源的需求日益增加,而选择一款性能强劲、稳定性高的云实例成为了关键。华为云Flexus X实例作为华为云最新推出的高性能实例,旨在为用户提供更强的计算能力和更高的网络带宽支持。最近华为云828 B2B企业节正…...

FreeRTOS学习笔记(六)队列
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、队列的基本内容1.1 队列的引入1.2 FreeRTOS 队列的功能与作用1.3 队列的结构体1.4 队列的使用流程 二、相关API详解2.1 xQueueCreate2.2 xQueueSend2.3 xQu…...

【Python篇】PyQt5 超详细教程——由入门到精通(中篇一)
文章目录 PyQt5入门级超详细教程前言第4部分:事件处理与信号槽机制4.1 什么是信号与槽?4.2 信号与槽的基本用法4.3 信号与槽的基础示例代码详解: 4.4 处理不同的信号代码详解: 4.5 自定义信号与槽代码详解: 4.6 信号槽…...

LinuxQt下的一些坑之一
我们在使用Qt开发时,经常会遇到Windows上应用正常,但到Linux嵌入式下就会出现莫名奇妙的问题。这篇文章就举例分析下: 1.QPushButton按钮外侧虚线框问题 Windows下QPushButton按钮设置样式正常,但到了Linux下就会有一个虚线边框。…...

Statement batch
我们可以看到 Statement 和 PreparedStatement 为我们提供的批次执行 sql 操作 JDBC 引入上述 batch 功能的主要目的,是加快对客户端SQL的执行和响应速度,并进而提高数据库整体并发度,而 jdbc batch 能够提高对客户端SQL的执行和响应速度,其…...

PPP 、PPPoE 浅析和配置示例
一、名词: PPP: Point to Point Protocol 点到点协议 LCP:Link Control Protocol 链路控制协议 NCP:Network Control Protocol 网络控制协议,对于上层协议的支持,N 可以为IPv4、IPv6…...

【Python机器学习】词向量推理——词向量
目录 面向向量的推理 使用词向量的更多原因 如何计算Word2vec表示 skip-gram方法 什么是softmax 神经网络如何学习向量表示 用线性代数检索词向量 连续词袋方法 skip-gram和CBOW:什么时候用哪种方法 word2vec计算技巧 高频2-gram 高频词条降采样 负采样…...

Python 语法糖:让编程更简单(续二)
Python 语法糖:让编程更简单(续) 10. Type hints Type hints 是 Python 中的一种语法糖,用于指定函数或变量的类型。例如: def greet(name: str) -> None:print(f"Hello, {name}!")这段代码将定义一个…...

6 - Shell编程之sed与awk编辑器
目录 一、sed 1.概述 2.sed命令格式 3.常用操作的语法演示 3.1 输出符合条件的文本 3.2 删除符合条件的文本 3.3 替换符合条件的文本 3.4 插入新行 二、awk 1.概述 2. awk命令格式 3.awk工作过程 4.awk内置变量 5.awk用法示例 5.1 按行输出文本 5.2 按字段输出文…...

什么是XML文件,以及如何打开和转换为其他文件格式
本文描述了什么是XML文件以及它们在哪里使用,哪些程序可以打开XML文件,以及如何将XML文件转换为另一种基于文本的格式,如JSON、PDF或CSV。 什么是XML文件 XML文件是一种可扩展标记语言文件。它们是纯文本文件,除了描述数据的传输、结构和存储外,本身什么也不做。 RSS提…...

海外直播对网速、带宽、安全的要求
要满足海外直播的要求,需要拥有合适的网络配置。在全球化的浪潮下,海外直播正逐渐成为企业、个人和各类组织的重要工具。不论是用于市场推广、品牌宣传,还是与观众互动,海外直播都为参与者带来了丰富的机会。然而,确保…...

UWB定位室外基站
定位基站,型号SW,是一款基于无线脉冲技术开发的UWB定位基站,基站可用于人员、车辆、物资的精确定位, 该基站专为恶劣环境使用而设计,防尘、防水等级IP67,工业级标准支持365天连续运行,本安防爆可…...

高斯平面直角坐标讲解,以及地理坐标转换高斯平面直角坐标
高斯平面直角坐标系(Gauss-Krger 坐标系)是基于 高斯-克吕格投影 的一种常见的平面坐标系统,主要用于地理信息系统 (GIS)、测绘和工程等领域。该坐标系将地球表面的经纬度(地理坐标)通过一种投影方式转换为平面直角坐标,以便在二维平面中进行距离、面积和角度的计算。 一…...

C++入门(06)安装QT并快速测试体验一个简单的C++GUI项目
文章目录 1. 清华镜像源下载2. 安装3. 开始菜单上的 QT 工具4. 打开 Qt Creator5. 简单的 GUI C 项目5.1 打开 Qt Creator 并创建新项目5.2 设计界面5.3 添加按钮的点击事件5.4 编译并运行项目 6. 信号和槽(Signals and Slots) 这里用到了C类与对象的很多…...

一篇文章告诉你小程序为什么最近这么火?
微信小程序之所以最近这么火,主要得益于其低成本获取高流量、线上线下流量互换、社交裂变引爆流量以及封闭商业生态闭环等优势。下面将详细探讨小程序火爆的多个原因: 一篇文章告诉你小程序为什么这么火爆? 低成本获取高流量 无需安装注册&…...

Qt-常用控件(3)-多元素控件、容器类控件和布局管理器
1. 多元素控件 Qt 中提供的多元素控件有: QListWidgetQListViewQTableWidgetQTableViewQTreeWidgetQTreeView xxWidget 和 xxView 之间的区别,以 QTableWidget 和 QTableView 为例. QTableView 是基于 MVC 设计的控件.QTableView 自身不持有数据,使用 QTableView 的…...

【系统设计】主动查询与主动推送:如何选择合适的数据传输策略
基本描述总结 主动查询机制:系统A主动向系统B请求数据,采用严格的权限控制和身份认证,防止未授权的数据访问。数据在传输过程中使用TLS加密,并通过动态脱敏处理隐藏敏感信息。 推送机制:系统B在数据更新时主动向系统…...

mac 安装brew并配置国内源
前置条件 - Xcode 命令行工具 一行代码安装Homebrew 添加到路径(PATH) - zsh shell为例 背景介绍 最近重装了我的MAC mini (m1 芯片), 很多软件都需要重新安装,因为后续还需要安装一些软件,所以想着安装个包管理软件 什么…...

Temu官方宣导务必将所有的点位材料进行检测-RSL资质检测
关于饰品类产品合规问题宣导: 产品法规RSL要求 RSL测试是根据REACH法规及附录17的要求进行测试。REACH法规是欧洲一项重要的法规,其中包含许多对化学物质进行限制的规定和高度关注物质。 为了确保珠宝首饰的安全性,欧盟REACH法规规定&#…...

mysql高级sql
文章目录 一,查询1.按关键字排序1.1按关键字排序操作(1)按分数排序查询(不加asc默认为升序)(2)按分数降序查询(DESC)(3)使用where进行条件查询(4)使用ORDER BY语句对多个字段排序 1.2使用区间判断查询(and/…...

Linux CentOS 7.9 安装mysql8
1、新建mysql文件夹 数据比较大,所以我在服务器另外挂了一个盘装mysql,和默认安装一个道理,换路径即可 cd ../ //创建文件夹 mkdir mysql //进入mysql文件夹 cd mysql 2、下载mysql8.0安装包并解压、重命名 //下载安装包 wget https://dev…...

替代 Django 默认 User 模型并使用 `django-mysql` 添加数据库备注20240904
替代 Django 默认 User 模型并使用 django-mysql 添加数据库备注 前言 在 Django 项目开发中,默认的 User 模型虽然能够满足许多基础需求,但在实际项目中我们常常需要对用户模型进行定制化。通过覆盖默认的 User 模型,我们可以根据具体的业…...

三维激光扫描点云配准外业棋盘的布设与棋盘坐标测量
文章目录 一、棋盘标定板准备二、棋盘标定板布设三、棋盘标定板坐标测量一、棋盘标定板准备 三维激光扫描棋盘是用来校准和校正激光扫描仪的重要工具,主要用于提高扫描精度。棋盘标定板通常具有以下特点: 高对比度图案:通常是黑白相间的棋盘格,便于识别。已知尺寸:每个格…...

【Python知识宝库】文件操作:读写文件的最佳实践
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、文件读取1. 使用open函数2. 逐行读取3. 使用readlines和readline 二、文件写入1. 写入文本2. 追加内容3. 写入…...

Chapter 13 普通组件的注册使用
欢迎大家订阅【Vue2Vue3】入门到实践 专栏,开启你的 Vue 学习之旅! 文章目录 前言一、组件创建二、局部注册三、全局注册 前言 在 Vue.js 中,组件是构建应用程序的基本单元。本章详细讲解了注册和使用 Vue 的普通组件的两种方式:…...

u盘显示需要格式化才能用预警下的数据拯救恢复指南
U盘困境:需要格式化的紧急应对 在数字信息爆炸的时代,U盘作为便携的数据存储介质,承载着我们工作、学习乃至生活中的大量重要资料。然而,当U盘突然弹出“需要格式化才能用”的提示时,这份便捷瞬间转化为焦虑与不安。这…...

还不懂BIO,NIO,AIO吗
BIO(Blocking I/O)、NIO(Non-blocking I/O)和 AIO(Asynchronous I/O)是 Java 中三种不同的 I/O 模型,主要用于处理输入 / 输出操作。 一、BIO(Blocking I/O) 定义与工作原…...

物联网——DMA+AD多通道
DMA简介 存储器映像 某些数据在运行时不会发生变化,则设置为常量,存在Flash存储器中,节省运行内存的空间 DMA结构图 DMA访问权限高于cpu 结构要素 软件触发源:存储器到存储器传输完成后,计数器清零 硬件触发源&…...

Vue 中 watch 和 watchEffect 的区别
watch 和 watcheffect 都是 vue 中用于监视响应式数据的 api,它们的区别在于:watch 用于监视特定响应式属性并执行回调函数。watcheffect 用于更通用的响应式数据监视,但回调函数中不能更新响应式数据。Vue 中 watch 和 watchEffect 的区别 …...

pip install pyaudio sounddevice error: externally-managed-environment
shgbitaishgbitai-C9X299-PGF:~/pythonworkspace/ai-accompany$ pip install pyaudio sounddevice error: externally-managed-environment This environment is externally managed ╰─> To install Python packages system-wide, try apt installpython3-xyz, where xyz …...