Linux性能与统计命令

news2024/11/26 16:28:27

目录:

  1. linux常用命令之性能统计
  2. linux常用统计命令
  3. linux进程与线程
  4. Linux性能统计

1.linux常用命令之性能统计

为什么要学习性能统计?

性能统计是衡量系统性能的重要手段,通过对系统各项指标的监控和分析,可以及时发现系统瓶颈和问题,并采取相应的优化措施来提高系统的性能和稳定性。以下是一些为什么要学习性能统计的原因:

  1. 优化系统性能:性能统计可以帮助我们了解系统的性能瓶颈和问题,从而采取针对性的优化措施,提高系统的响应速度、吞吐量、并发用户数等指标。
  2. 确保系统稳定:性能统计可以及时发现系统中的异常情况,如系统崩溃、死锁、内存泄漏等,从而采取相应的措施来解决问题,确保系统的稳定性和可用性。
  3. 制定优化策略:通过对性能统计数据的分析,可以了解系统的性能瓶颈和问题,从而制定相应的优化策略,如增加硬件资源、调整算法、优化数据库等。
  4. 评估系统性能:性能统计可以评估系统的性能水平,从而了解系统的瓶颈和可优化空间,为后续的优化提供参考和依据。
  5. 监控系统运行状态:性能统计可以帮助我们及时发现系统中的异常情况,如系统崩溃、死锁、内存泄漏等,从而采取相应的措施来解决问题,确保系统的稳定性和可用性。

总之,学习性能统计对于系统开发和运维人员来说是非常重要的,可以帮助我们更好地了解系统的性能状况,及时发现和解决问题,提高系统的性能和稳定性。

性能统计知识:

  • 系统级性能数据分析
  • 进程级性能数据分析

常用性能指标: 

  • cpu 代表算法的高效性
  • mem (内存)代表数据结构的使用合理性
  • net io 等更多指标(net io 的不合理使用同样会在 cpu 和 mem 上体现出影响)

 统计方法:

  • 临时性分析 命令交互
  • 系统性分析 prometheus grafana

cpu 信息 /proc/cpuinfo :

cat /proc/cpuinfo

  • cat /proc/cpuinfo 是一个 Linux 命令,用于显示 CPU 的信息。
  • /proc/cpuinfo 是一个虚拟文件系统,它提供了有关 CPU 的详细信息,包括 CPU 型号、核心数量、缓存大小等。通过运行 cat /proc/cpuinfo 命令,可以查看这些信息。这个命令对于理解系统硬件和性能问题非常有用。例如,如果你想了解你的系统有多少个 CPU 核心,以及每个核心的缓存大小,你可以运行 cat /proc/cpuinfo 命令,并检查相关行。
  • 请注意,cat /proc/cpuinfo 命令的输出是动态的,并且取决于系统的运行状态。在某些情况下,这个命令可能会因为系统正在运行而变得非常慢。

processor    : 0         这是处理器的编号,表示是第一个处理器。
vendor_id    : GenuineIntel        表示处理器的制造是 Intel。
cpu family    : 6        表示处理器所属的 CPU 家族,这里是第 6 代。
model        : 85        表示体的 CPU 型号,里是 Intel Xeon Platinum 8269CY。
model name    : Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz  提供了 CPU 的详细型号和率信息。
stepping    : 7           表示 CPU 的步进值,用于区分同一型号中不同版本。
microcode    : 0x1                表示当前加载的微码版本。
cpu MHz        : 2500.004        表示 CPU 的时钟率,以兆赫兹为单位。
cache size    : 36608 KB        表示 CPU 缓存大小,这里是 36,608 KB。
physical id    : 0                表示物理 CPU 的标识符,如果系统有多个物理 CPU,则有不同的标识符。
siblings    : 2                表示在同一物理 CPU 上存在逻辑处理器(线)的数量。
core id        : 0                表示逻辑处理器所的核心标识符。
cpu cores    : 1                表示每个物理 CPU 上的核心数量。
apicid        : 0                表示逻辑处理器的 APIC(高级可编程断控制器)标识符。
initial apicid    : 0        表示初始 APIC 标识符。
fpu        : yes        浮点运算单元(Floating Point Unit),表示 CPU 是否支持点运算。
fpu_exception    : yes          指示 CPU 是否支浮点异常处理。
cpuid level    : 22                 CPUID 级别,用于标识 CPU 的功能和性。
wp        : yes                写保护(Write Protect),表示 CPU 是否支持写保护功能。
flags        : fpu vme de pse......        标志位,列出了 CPU 支持各种特性和扩展指令集。
bogomips    : 5000.00        BogoMIPS 是一个估算的 CPU 速度指标不是真实的时频率。
clflush size    : 64        缓存行刷新大小,表示 CPU 缓存的刷新单位大小。
cache_alignment    : 64        缓存对齐方式,表示 CPU 缓存的对齐要求。
address sizes    : 46 bits physical, 48 bits virtual        地址大小,指示 CPU 支持的物理和拟地址位数。
power management:        电源管理,表示 CPU 是否支持节能和功管理。

-----------------------------------------------------------------------------------------------------------------

processor    : 1        处理器编号,表示当前处理器的序号。
..........

系统负载与进程 cpu 占用 top:

top

 top - 17:52:05 up 250 days,  3:07,  1 user,  load average: 0.21, 0.35, 0.40
Tasks:  86 total,   1 running,  85 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.7 us,  6.1 sy,  0.0 ni, 91.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1776404 total,   129680 free,   197624 used,  1449100 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1295884 avail Mem 

  • up 250 days, 3:07:这个系统已经运行了250天,3小时7分钟。
  • 1 user:当前只有一个用户登录系统。
  • load average:这些数字表示过去1分钟、5分钟和15分钟的平均负载。负载是指系统中正在运行的进程数量。较小的数字表示系统负载较低,有更多的可用资源。
  • Tasks:当前运行的任务总数,包括正在运行的、等待睡眠的、停止的以及僵尸进程的数量。
  • %Cpu(s):CPU使用情况的百分比。这些数字表示各个进程使用的CPU时间比例。
  • KiB Mem:系统内存的总容量。
  • KiB Swap:系统交换分区(swap)的总容量。
  • buff/cache:系统的缓冲区(buffer)和缓存区(cache)的容量。
  • avail Mem:系统中可用内存的容量。

PID USER      PR  NI    VIRT    RES    SHR   S   %CPU  %MEM     TIME+  COMMAND    

  1. PID:进程ID。
  2. USER:运行该进程的用户名。
  3. PR:进程的优先级,通常为0-9,数值越小表示优先级越高。
  4. NI:进程的nice值,表示进程的优先级调整值,通常为-20到+19,数值越小表示优先级越高。
  5. VIRT:进程的虚拟内存总量,包括代码、数据、栈和堆等,单位为KiB。
  6. RES:进程的常驻内存量,单位为KiB,表示进程占用但未被分配给进程的内存。
  7. SHR:进程共享内存量,单位为KiB,表示进程之间共享的内存。
  8. S:进程的状态,包括'R'(运行)、'S'(睡眠)、'T'(停止)等。
  9. %CPU:进程占用的CPU百分比。
  10. %MEM:进程占用的内存百分比。
  11. TIME+:进程消耗的CPU时间总和,单位为秒。
  12. COMMAND:进程的名称和参数。

cpu 的关键指标:

  • cpu 利用率 进程的 cpu 利用情况
  • load average 系统负载情况

内存(MEM)占用统计:

  • free
  • ps
  • top

 

  • total:系统中总的内存容量,单位为KiB(千字节)。
  • used:系统中已使用的内存容量,单位为KiB。
  • free:系统中空闲的内存容量,单位为KiB。
  • shared:系统中被多个进程共享的内存容量,单位为KiB。
  • buff/cache:系统中被用作缓冲区或缓存区的内存容量,单位为KiB。
  • available:系统中空闲的、未被占用的内存容量,单位为KiB。

 

meminfo:/proc/meminfo 保存了更多的内存使用数据:

cat /proc/meminfo

MemTotal:        1776404 kB        这是系统中总的物理内存容量,单位为KB。
MemFree:          153156 kB        这是空闲的内存容量,包括所有未被分配给任何进程的内存。这个值通常很小,因为它包括了许多被操作系统保留的内存区域,如缓存、缓冲区等。
MemAvailable:    1316440 kB           这是空闲的、未被占用的内存容量,包括所有空闲的物理内存,不包括被操作系统保留的内存区域。这个值可以用来评估系统中可用的内存量。
Buffers:          142360 kB        这是被用作缓冲区的内存容量,通常用于磁盘I/O操作,以提高系统性能。
Cached:          1056508 kB        这是被用作缓存区的内存容量,通常用于存储当前使用的文件和数据,以提高读取效率。
SwapCached:            0 kB        这是被用作交换区的内存容量,通常用于临时存储当前使用的数据,当物理内存不足时,将部分内存交换到磁盘上。
Active:           779420 kB        这是当前正在使用的内存容量,包括所有正在运行的进程的内存映射。
Inactive:         526444 kB        这是当前未使用的内存容量,包括所有被进程占用的内存,但未被分配给任何进程的内存。
Active(anon):     107332 kB        这是当前正在使用的匿名内存容量,包括所有正在运行的进程的匿名内存映射。
Inactive(anon):      228 kB        这是当前未使用的匿名内存容量,包括所有被进程占用的匿名内存,但未被分配给任何进程的内存。
Active(file):     672088 kB        这是当前正在使用的文件映射内存容量,包括所有正在运行的进程的文件映射内存。
Inactive(file):   526216 kB        这是当前未使用的文件映射内存容量,包括所有被进程占用的文件映射内存,但未被分配给任何进程的内存。
Unevictable:           0 kB        不可替换的内存,通常指由于保护页面而无法被移出内存的页面。
Mlocked:               0 kB        被锁定(锁定)的内存,通常指被进程锁定而无法被其他进程使用的内存。
SwapTotal:             0 kB        总的交换空间大小,即物理内存不足时,将使用交换空间。
SwapFree:              0 kB        空闲的交换空间大小。
Dirty:                36 kB        脏的内存页面,即已经被修改但尚未写入磁盘的页面。
Writeback:             0 kB        正在写入磁盘的内存页面。
AnonPages:        107036 kB        匿名内存页面,通常指使用匿名内存映射的文件或共享内存段。
Mapped:            62256 kB        已映射的内存,通常指已将文件或设备映射到内存中的内存页面。
Shmem:               564 kB        共享内存,指通过共享内存区域进行通信的进程共享的内存。
Slab:             226892 kB        用于分配内核对象和数据的内存池。
SReclaimable:     152044 kB        可回收的内存,通常指可被回收以释放内存的页面。
SUnreclaim:        74848 kB        不可回收的内存,通常指无法被回收的页面。
KernelStack:        2880 kB        用于调度进程和执行系统调用栈的内存。
PageTables:         4768 kB         用于在虚拟地址和物理地址之间进行转换的内存。
NFS_Unstable:          0 kB        不可用的不稳定内存,通常指通过NFS(网络文件系统)访问的文件系统使用的内存。
Bounce:                0 kB        用于缓存预取的内存页面,通常指预取的页面正在被交换出去。
WritebackTmp:          0 kB        该项表示当前正在写入缓冲区中的数据的大小。这些数据可能尚未被刷新到磁盘上,因此它们暂时存储在内存中。
CommitLimit:      888200 kB        该项表示系统中物理内存的总量,包括共享内存(SHMEM)和缓存内存(Buffer and Cache Memory)。
Committed_AS:     690196 kB        该项表示已经被分配的内存量,包括已经映射到进程虚拟地址空间的内存和已经被写回磁盘的内存。
VmallocTotal:   34359738367 kB        该项表示Vmalloc(malloc的扩展版本)可用内存的总大小。
VmallocUsed:       10840 kB        该项表示已经使用了Vmalloc的内存量。
VmallocChunk:   34359719676 kB        该项表示Vmalloc分配的内存块的大小。
HardwareCorrupted:     0 kB        该项表示硬件损坏的内存量。
AnonHugePages:     32768 kB        该项表示匿名巨大内存页的大小。这些页用于支持大型数据结构,如大型数组或大型缓冲区。
CmaTotal:              0 kB        该项表示管理内存(CMA)的总大小。
CmaFree:               0 kB        该项表示可用于分配的CMA内存量。
HugePages_Total:       0        该项表示系统中总共有多少个巨大内存页。
HugePages_Free:        0        该项表示系统中当前空闲的巨大内存页数量。
HugePages_Rsvd:        0        该项表示已经被保留的巨大内存页数量。
HugePages_Surp:        0        该项表示在需要时可以用来填充巨大内存页的临时内存量。
Hugepagesize:       2048 kB         该项表示巨大内存页的大小。
DirectMap4k:       53944 kB        该项表示直接映射到物理内存中的4KB内存页的数量。
DirectMap2M:     1937408 kB        该项表示直接映射到物理内存中的2MB内存页的数量。
DirectMap1G:           0 kB        该项表示直接映射到物理内存中的1GB内存页的数量。

进程级别的内存分析:

ps -e -o uid,pid,ppid,pcpu,pmem,rss,vsz,comm  --sort -%mem | head -10 

  • ps -e -o uid,pid,ppid,pcpu,pmem,rss,vsz,comm: 这个命令用于显示系统中所有进程的详细信息,包括进程ID(pid)、进程所属用户ID(uid)、父进程ID(ppid)、CPU使用率(pcpu)、内存使用率(pmem)、内存占用(rss和vsz)、以及进程的名称(comm)。
  • --sort=-%mem: 这个选项用于按照进程的内存使用率进行排序,其中%mem是进程的内存使用率的百分比。
  • | head -10: 这个选项用于显示前10个进程的信息,使用管道符将前面的命令的输出传递给head命令进行处理。

 top 命令:(同上,既能分析cpu也能分析内存)

网络连接(Net)统计:

查看网络连接:

netstat -tnp | head -10 

netstat -tnp | head -10 这个命令用于显示网络状态信息,并且按每个进程的网络内存使用量排序。具体来说,它的工作方式如下:

  1. netstat -tnp:执行 netstat 命令,并显示网络状态信息。-t 选项表示显示 TCP 连接状态信息,-n 选项表示以数字形式显示地址和端口号,-p 选项表示显示正在监听的网络服务进程的 PID(进程 ID)。
  2. | head -10:将输出重定向到管道,然后使用 head 命令将前 10 条结果输出。

因此,执行该命令将显示当前正在监听的网络服务进程的 PID、地址、端口号、CPU 占用率、内存占用情况以及进程的名称。这些信息按每个进程的网络内存使用量从高到低排序。

  • Proto:表示网络协议,比如 TCP、UDP 等。
  • Recv-Q 和 Send-Q:分别表示接收队列和发送队列的大小。队列的大小表示等待处理的连接请求或数据包的数量。
  • Local Address 和 Foreign Address:分别表示本地地址和远程地址,包括 IP 地址、端口号等。
  • State:表示连接的状态,比如ESTABLISHED 表示连接已经建立,等待发送或接收数据,TIME_WAIT 表示连接已经关闭,但数据包还在网络中。
  • PID/Program name:表示进程的 PID 和程序名称。

网络状态:

  • ESTABLISHED - 已建立连接:该套接字已建立连接。
  • SYN_SENT - 正在尝试建立连接:该套接字正在积极尝试建立连接。
  • SYN_RECV - 已收到连接请求:从网络中接收到连接请求。
  • FIN_WAIT1 - 已关闭套接字,正在关闭连接:套接字已关闭,并且连接正在关闭中。
  • FIN_WAIT2 - 连接已关闭,套接字等待远程端关闭:连接已关闭,套接字正在等待远程端关闭。
  • TIME_WAIT - 主动关闭:套接字在关闭后等待处理仍在网络中的数据包。
  • CLOSE - 未使用的套接字:套接字未被使用。
  • CLOSE_WAIT - 被动关闭:远程端已关闭,等待套接字关闭。
  • LISTEN - 正在监听:套接字正在监听传入连接。

数据统计 

netstat -tn | awk 'NR>2{print $NF}'| sort | uniq -c | sort -nr

2.linux常用统计命令

排序:sort:

  •  sort常用参数
  • -b:忽略开头的空白字符
  • -f∶将小写字母看作为大写字母
  •  -h:根据存储容量排序(KB、MB、GB)
  • -n︰按数字排序
  • -o︰把结果写入文件
  • -r︰以相反的顺序来排序
  • -t:指定分隔符。默认为空格
  •  -V:按照数字版本排序
  •  -k:指定排序的关键字,与t参数配合使用
  • sort 命令,Linux sort 命令详解:对文本文件中所有行进行排序。 - Linux 命令搜索引擎

去除重复:uniq:

uniq常用参数(只检查上下行是否重复)。

  • -c:统计重复出现的次数
  • -d:所有邻近的重复行只被打印一次。重复次数要>=2次
  • -D:所有邻近的重复行将全部打印
  • -f:跳过对前n个列的比较
  • -s:跳过对前n个字符的比较
  • -w︰只对每行前n个字符进行比较

字符统计:wc

  • -c:统计字节数: chars
  • -l:统计行数
  • -w:统计单词数
  • -L:打印最长行的长度

3.linux进程与线程

进程::

  • 进程是操作系统中进行资源分配的最基本单位,它是程序的执行过程,在操作系统中,进程可以被看作是一个独立的运行单位。每个进程都有自己独立的内存空间和执行上下文,可以在自己的虚拟地址空间中运行,与其他进程相互独立。进程可以包含多个线程,线程是进程中的一个执行单元,可以共享进程的内存空间和执行上下文,线程之间相互协作,完成进程的任务。
  • 进程的创建、撤销和调度由操作系统负责管理,进程的创建通常是由程序调用操作系统提供的进程管理函数或接口来完成的。在程序执行之前,操作系统会为该程序分配内存空间和系统资源,并创建一个新进程。程序在运行过程中也可以创建新进程来处理不同的任务。
  • 进程是操作系统多任务处理的基础,操作系统可以将系统资源分配给不同的进程,并按照一定的调度策略来执行这些进程,从而实现并发执行。进程之间相互独立,互不干扰,每个进程都有自己的内存空间和执行上下文,操作系统可以通过进程间通信来实现不同进程之间的协作。

线程:

  • 线程是进程中的执行单元,一个进程可以包含多个线程,每个线程共享进程的内存空间和执行上下文,但每个线程都有自己独立的执行栈和寄存器状态。线程之间相互协作,完成进程的任务。
  • 线程的创建、撤销和调度由操作系统负责管理,线程的创建通常是由进程中的某个线程调用操作系统提供的线程管理函数或接口来完成的。在进程中,线程的切换比进程的切换代价更小,因为线程之间的内存空间是共享的,操作系统可以直接在共享内存空间上进行读写操作,而不需要进行额外的操作。
  • 线程的执行依赖于操作系统的调度策略,不同的操作系统有不同的调度策略,操作系统可以将系统资源分配给不同的线程,并按照一定的调度策略来执行这些线程,从而实现并发执行。线程之间相互协作,可以共享进程的资源,实现任务的并行处理,提高程序的执行效率。

进程的生命周期:

  • created sleep 100 ./demo.py
  • ready
  • running
  • waiting
  • terminated kill killall
import multiprocessing
import os
import sys
import threading
from time import sleep


def thread_demo(index):
    while True:
        print(f"thread_demo {index} pid={os.getpid()} thread_name={threading.current_thread().name}")
        sleep(1)


def process_demo(index):
    while True:
        print(f"process_demo {index} pid={os.getpid()} thread_name={threading.current_thread().name}")
        sleep(1)


def multi_thread(count):
    for index in range(count):
        thread = threading.Thread(target=thread_demo, args=[index])
        thread.start()
        sleep(1)


def multi_process(count):
    for index in range(count):
        process = multiprocessing.Process(target=process_demo, args=(index,))
        process.start()
        sleep(1)


if __name__ == '__main__':
    process_count = int(sys.argv[1])
    thread_count = int(sys.argv[2])
    multi_process(process_count)
    multi_thread(thread_count)
    input()

 

这个命令用于查找当前用户下正在运行的所有包含"demo.py"字符串的进程,并输出这些进程的详细信息如下: 

通过这个指令,可以详细了解正在运行的进程的信息,包括进程的 CPU 使用率、内存占用等性能指标,以及进程打开的文件句柄数和文件数等资源使用情况。这对于系统管理员和开发人员来说非常有用,可以帮助他们更好地管理和优化系统资源如下: 

使用这个命令可以显示进程的详细信息,包括进程的ID、名称、状态、线程数、父进程ID、命令行参数等信息,以及进程之间的父子关系。这些信息对于诊断和分析系统性能和问题非常有用如下:

常用进程管理命令:

  • ps 进程列表快照
  • top 交互式进程观测
  • kill killall 结束进程
  • fg 进程切换到前台
  • bg 进程切换到后台
  • ctrl z 挂起进程

ps 命令:

  • unix 风格参数 ps -ef
  • bsd 风格参数 ps aux
  • gnu 风格参数 ps --pid pidlist

进程状态:

  • D        不可中断的睡眠状态(通常是在等待IO)
  • R        运行状态或可运行状态(在运行队列中)
  • S        可中断的睡眠状态(等待某个事件完成)
  • T        被作业控制信号停止
  • t         在跟踪过程中被调试器停止
  • W       页面交换(自2.6.xx内核以后不再是有效的状态)
  • X        死亡状态(不应该看到)
  • Z        僵死状态(进程已经结束,但它的父进程还未回收它) 

这个命令用于查找当前用户下正在运行的所有与python相关的进程,并显示这些进程的详细信息,包括进程的CPU使用率、内存占用等性能指标,以及进程的状态和命令行参数等信息。 

4.Linux性能统计

查询 Linux 系统负载与进程:

top

ps aux 

查询 Linux 系统内存使用数据并保存到data.txt中:

cat /proc/meminfo > data.txt

 

统计内存数据文件的字节数:

wc -c data.txt 

 

对内存数据文件的每一行按 ASCII 码值降序排列并去重:

sort -r data.txt | uniq > sorted_and_unique.txt 

 查询 Linux 系统进程列表快照:

ps -ef

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

山西电力市场日前价格预测【2023-07-24】

日前价格预测 预测明日(2023-07-24)山西电力市场全天平均日前电价为338.25元/MWh。其中,最高日前电价为377.59元/MWh,预计出现在20: 30。最低日前电价为283.56元/MWh,预计出现在13: 30。 价差方向预测 1:实…

Linux系统初装后的配置

目录 1、学习环境关闭SElinux 2、关闭防火墙 3、添加用户 4、使用sudo进行权限管理 5、修改ssh服务的默认配置 6、修改网卡参数 环境:centOS7 1、学习环境关闭SElinux 临时关闭 :setenforce 0;查看状态:getenforce;临时开启&#xff…

uniapp 小程序 查看评价

查看评价效果图&#xff1a; 评分组件在上一篇文章&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; <template><view class"view-comments"><view class"evaluate-box"><view class"ti…

C++ | set与map的用法指南

前言 前面我们学习了vector、list等容器&#xff0c;其实他们都属于序列式容器&#xff0c;因为其底层为线性结构&#xff1b;今天我们学习使用的set与map是属于关联式容器&#xff0c;关联式容器更注重于数据检索访问的效率&#xff1b;本文所有的资料均查阅于文档&#xff0c…

Python实战项目——旅游数据分析(四)

由于有之前的项目&#xff0c;所以今天我们直接开始&#xff0c;不做需求分析&#xff0c;还不会需求分析的可以看我之前的文章。Python实战项目——用户消费行为数据分析&#xff08;三&#xff09; 导入库 import numpy as np import pandas as pd import matplotlib.pyplo…

Sentinel授权规则与规则持久化

&#x1f333;&#x1f333;&#x1f333;&#x1f333;&#x1f333;&#x1f333;&#x1f333; 学习授权规则前&#xff0c;先想想SpringCloud Gateway的黑白名单&#xff0c;请求过网关&#xff0c;gateway会去鉴权。但如果有人把微服务信息泄露出去了呢&#xff1f;此时微…

输出函数print

print("hello world") # 可以输出数字 print(1111) print(2222) # 可以输出字符串 print(helloworld) print("helloworld") # 可以输出运算符的表达式 print(56) # 将数据输出文件中&#xff0c;注意点&#xff1a;1.所指定的盘符存在&#xff0c;2.使…

「苹果安卓」手机搜狗输入法怎么调整字体大小及键盘高度?

手机搜狗输入法怎么调整字体大小及键盘高度&#xff1f; 1、在手机上准备输入文字&#xff0c;调起使用的搜狗输入法手机键盘&#xff1b; 2、点击搜狗输入法键盘左侧的图标&#xff0c;进入更多功能管理&#xff1b; 3、在搜狗输入法更多功能管理内找到定制工具栏&#xff0c…

uni-app中全局设置页面背景颜色

在uni-app中设置背景颜色&#xff0c;想象中应该很简单&#xff0c;其实里面也还是有点小坑的&#xff0c;我们来一起看一下。 方法一&#xff1a;pages.json globalStyle 中设置 backgroundColor 结果&#xff1a;未生效 猜测可能是颜色不能用别名&#xff0c;换十六进制试一…

讯为RK3568开发板入门之-tftpnfs的配置

基础条件 VMware虚拟机 Ubuntu18.04 【网络配置陈桥接模式】 RK3568开发板【我是用讯为的RK3568】 网线连接路由器或者和电脑直连 配置TFTP和NFS的作用 使用tftp和nfs网络挂载可以很方便的进行软件的调试&#xff0c;挂载成功后只要把Ubuntu下编译好的文件程序放到挂载的目录…

有名管道(FIFO)的学习笔记

文章目录 有名管道介绍有名管道的使用创建 注意事项 有名管道介绍 有名管道的使用 创建 命令&#xff0c; mkfifo name函数&#xff0c;int mkfifo(const char *pathname, mode_t mode); 设置错误号&#xff1b; 向管道中写数据&#x1f447;&#xff1a; 从管道读数据&am…

数据库新闻速递 SingleStore Kai for MongoDB有以下6个关键特性, MONGODB 也疯狂

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到3群&#xff08;共…

Hive查询性能优化——物化视图(materialized view)

1. 背景&#xff1a; 在一次大表查询中&#xff0c;查询速度非常慢,插叙时间以分钟为单位&#xff0c;而生产需求要达到10s以内。造成这个问题的原因有多种&#xff0c;性能调优的方式也有多种&#xff0c;这里记录一下其中一种方案&#xff0c;采用物化视图&#xff08;Mater…

[JAVAee]synchronized关键字

目录 1.synchronized的特性 ①互斥性 ②可重入性 2.synchronized的使用示例 ①修饰普通方法 ②修饰静态方法 ③修饰代码块 1.synchronized的特性 ①互斥性 互斥性,就像是给门上锁了一样. 当A线程使用了被synchronized修饰的代码块并对其上锁,其他线程(B线程,C线程)想要使…

从零开始学习自动驾驶路径规划-环境配置

从零开始学习自动驾驶路径规划-环境配置 前面&#xff0c;每个人遇到的问题不一样&#xff0c;这里记录了配置步骤和目前遇到的问题&#xff0c;会持续更新报错解决方法。配置时有报错请认真看报错经验 环境配置步骤&#xff08;18.04和20.04都可以&#xff0c;有些问题没遇到…

流媒体视频融合平台EasyCVR更新版本后,首页无法打开的原因排查与解决

EasyCVR视频融合平台基于云边端一体化架构&#xff0c;可支持多协议、多类型设备接入&#xff0c;包括&#xff1a;NVR、IPC、视频编码器、无人机、车载设备、智能手持终端、移动执法仪等。平台具有强大的数据接入、处理及分发能力&#xff0c;可在复杂的网络环境中&#xff0c…

精通自动化,Pytest自动化测试框架-fixture用例的前后置(实现)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试用例实现前后…

软件项目验收测试报告-软件项目验收流程

目录 一、什么是项目验收&#xff1f; 二、软件项目验收材料的准备 三、软件项目验收&#xff0c;按照验收的流程&#xff0c;可分为验收准备、初步验收、最终验收和项目交接四个部分。 对甲方而言&#xff0c;项目验收是正式接受项目成果&#xff0c;将项目从建设转为运营。…

视频增强技术-去噪

本文介绍了关于视频增强技术的相关方法包括传统方法和基于深度学习的方法&#xff0c;并给出了他们的对比实验结果&#xff0c;最后对它们简单的做了总结&#xff0c;文中有一些图片和总结来自于网上其他博主的文章&#xff0c;已在文中标记并给出了相关的原文链接&#xff0c;…

JAVA基础-集合(List与Map)

目录 引言 一&#xff0c;Collection集合 1.1,List接口 1.1.1&#xff0c;ArrayList 1.1.1.1&#xff0c;ArrayList的add&#xff08;&#xff09;添加方法 1.1.1.2&#xff0c;ArrayList的remove&#xff08;&#xff09;删除方法 1.1.1.3&#xff0c;ArrayList的contai…