当前位置: 首页 > news >正文

Linux系统下的性能分析命令

在 Linux 系统下,有许多用于性能分析和调试的命令和工具,可以帮助您识别系统瓶颈、优化性能以及调查问题。本文将介绍在性能分析过程中,可能使用到的一些命令。

以下是一些常用的性能分析命令和工具汇总:

命令功能简述
top用于实时监视系统中运行的进程和系统性能指标,如CPU使用率、内存使用率等。
nmon一个性能监控工具,提供实时的系统性能数据,包括CPU、内存、磁盘、网络等信息。
lsof用于列出打开的文件和网络连接,可以用于查找资源泄漏和不正常的连接。
pidstat用于监视进程级别的CPU、内存、IO等性能数据。
vmstat用于显示系统的虚拟内存、进程、CPU活动和IO统计信息。
iostat用于监视系统磁盘和IO性能,提供关于磁盘活动的信息。
tcpdump用于抓取网络数据包,对于网络性能分析和故障排除非常有用。

1、top

top 命令是 Linux 系统下常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况,如:CPU 使用率、内存使用率等。

1.1 语法

top [options]

常用选项:

  • -d--delay: 指定刷新间隔,即 top 每隔多少秒更新一次,默认为 3 秒。

  • -n--iterations: 指定刷新次数,即 top 更新数据的次数。

  • -u--user: 仅显示指定用户的进程。

  • -p--pid: 仅显示指定进程 ID 的信息。

  • -H:显示进程的层次关系,即显示线程。

1.2 示例

以下是一个 top 命令的示例输出:

top - 16:30:45 up 2 days,  5:37,  2 users,  load average: 0.15, 0.18, 0.20
Tasks: 186 total,   1 running, 185 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.5 us,  0.5 sy,  0.0 ni, 97.9 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem : 16327936 total,  9359124 free,  2368572 used,  4600256 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used. 13755352 avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND2191 alice     20   0  169168  14164  10964 S   3.0  0.1   0:07.83 gnome-terminal-2811 bob       20   0 2067296 301100  78964 S   2.0  1.8  30:02.45 firefox1 root      20   0  191064   7780   4744 S   0.0  0.0   0:06.07 systemd...

在上述示例中,每行输出信息分别为:

  • 第一行:提供了系统的一般性信息。分别是系统当前时间、系统运行时间、当前登录用户数和负载平均值(load average,即:任务队列的平均长度,3个值分别表示1分钟、5分钟、15分钟到现在的平均值)。

  • 第二行:任务(Tasks)信息。分别是总任务数,显示了正在运行(running)、睡眠(sleeping)、停止(stopped)和僵尸(``zombie)状态的进程数量。

  • 第三行:CPU 统计信息。us 表示用户空间 CPU 占有率、sy 表示内核空间 CPU 占用率、ni 表示用户进程空间改变过优先级的进程 CPU 占有率、id 表示空闲 CPU 占用率、wa 表示等待输入输出的 CPU 时间百分比、hi 表示硬件中断请求、si 表示软件中断请求。

  • 第四行:内存信息。分别为物理内存总量、已使用的物理内存、空闲物理内存、内核缓冲使用量。

  • 第五行:交换区信息。分别为交换区总量、空闲交换区大小、缓冲交换区大小。

  • …:进程列表。每一行表示一个进程的信息,包括进程 ID、用户、CPU 使用率、内存使用率、进程状态等。

请注意,top 命令的输出会实时更新,您可以使用交互式命令来切换排序方式、改变显示内容等。例如,按下 M 可以按内存使用率排序进程,按下 P 可以按 CPU 使用率排序进程。要退出 top,您可以按下 q 键。

2、nmon

nmon 是一个用于实时监视系统性能的命令行工具,最初由 IBM 的 Nigel Griffiths 开发。它提供了一种简洁的方式来查看系统的CPU、内存、磁盘、网络等性能指标,以及进程级别的信息。

nmon 具有交互式界面,可以显示实时的性能数据,方便管理员和开发人员进行系统性能分析。

以下是 nmon 命令的一些常见用法和示例:

  1. 基本使用

    使用以下命令启动 nmon

    nmon
    

    这将启动 nmon 交互式界面,显示各种性能指标的实时数据。

  2. 指定刷新频率

    您可以使用 -s 参数来指定刷新间隔,单位为秒。例如,以下命令将每隔2秒刷新一次数据:

    nmon -s 2
    
  3. 保存数据到文件

    您可以使用 -f 参数将 nmon 的输出保存到文件中,以便后续分析。例如,以下命令将数据保存到名为 nmon_output.nmon 的文件中:

    nmon -f -c 10 -s 2 -T -m /path/to/nmon_output.nmon
    

    在这个示例中,-c 10 表示 nmon 运行10个循环后自动退出,-T 表示在输出中包含时间戳。

  4. 只显示特定项目

    如果您只对特定性能指标感兴趣,可以使用 -d 参数来指定要显示的项目。例如,以下命令只显示CPU和内存相关数据:

    nmon -d cpu,mem
    
  5. 远程监视

    您可以通过SSH在远程系统上运行 nmon,然后将性能数据传输到本地进行分析。例如,以下命令在远程系统上运行 nmon 并将数据传输到本地:

    ssh user@remote_host "nmon -f -s 5 -c 10" > nmon_output.nmon
    

这些示例只是 nmon 的一小部分用法。nmon 还提供了许多其他选项和功能,可以根据您的需求进行调整和使用。要详细了解 nmon 的所有选项和功能,请查阅官方文档或运行 nmon 命令时使用 -h 参数查看帮助信息。

3、lsof

lsof(“List Open Files”)是一个用于列出在 Linux 系统上被进程打开的文件和网络连接的命令。它可以帮助您查看哪些进程正在访问哪些文件,以及网络连接的相关信息。

lsof 可以用于排查资源泄漏、寻找进程占用文件等问题。

3.1 语法

以下是一些常用的 lsof 命令选项及其说明:

  • -i: 列出网络连接。

  • -n: 不解析主机名和端口号。

  • -c <进程名>: 仅列出特定进程的信息。

  • -p <进程ID>: 列出指定进程的信息。

  • -u <用户名>: 列出属于特定用户的信息。

  • -t: 仅显示进程ID。

  • -F <格式>: 使用指定的格式输出。

3.2 示例

以下是一些示例,演示了如何使用 lsof 命令:

  1. 列出所有打开的文件和网络连接

    lsof
    
  2. 列出特定文件的打开者

    lsof /path/to/file
    
  3. 列出特定端口的网络连接

    lsof -i :<port>
    
  4. 列出某个用户打开的文件

    lsof -u <username>
    
  5. 列出特定进程的打开文件

    lsof -p <pid>
    
  6. 列出特定类型的文件(例如,TCP连接)

    lsof -i tcp
    
  7. 列出所有网络连接,但不解析主机名和端口号

    lsof -ni
    
  8. 以机器可读的格式输出信息

    lsof -F json
    
  9. 列出所有正在使用某个设备的进程

    lsof /dev/sda1
    

请注意,lsof 命令提供了丰富的信息,包括文件描述符、文件类型、文件位置、打开方式、进程ID、用户等等。您可以根据需要使用不同的选项来过滤和查看所需的信息。使用 man lsof 命令可以查看完整的命令文档和详细说明。

4、pidstat

pidstat 是一个用于监视进程级别性能统计的命令行工具,它可以提供有关CPU使用率、内存使用率、IO活动等信息。它是 sysstat 套件的一部分,需要安装才能使用。

4.1 语法

以下是 pidstat 命令的常用选项:

  • -u: 显示CPU使用率和统计信息。

  • -r: 显示内存使用率和统计信息。

  • -d: 显示磁盘IO统计信息。

  • -t: 显示进程启动时间。

  • -p <PID>: 指定要监视的特定进程ID。

  • -h: 显示帮助信息。

4.2 示例

下面列举了一些示例。

  1. 显示进程的CPU使用率和统计信息

    pidstat -u 1
    

    这将每秒显示一次CPU使用率和统计信息,默认显示所有进程的数据。可以通过添加 -p <PID> 选项指定特定的进程。

  2. 显示进程的内存使用率和统计信息

    pidstat -r 1
    

    类似于上面的示例,这将每秒显示一次内存使用率和统计信息。

  3. 显示进程的磁盘IO统计信息

    pidstat -d 1
    

    这将每秒显示一次磁盘IO统计信息,包括读写速率、读写次数等。

  4. 显示特定进程的CPU使用率和统计信息

    pidstat -u -p <PID> 1
    

    这将每秒显示指定进程的CPU使用率和统计信息,其中 <PID> 是目标进程的进程ID。

  5. 显示进程的启动时间

    pidstat -t
    

    这将显示所有进程的启动时间。

pidstat 可以帮助您深入了解特定进程的性能行为,从而进行性能调优、问题排查等工作。请注意,具体选项和输出格式可能会因系统版本而异,您可以通过 man pidstat 查看完整的命令手册以获取更多信息。

5、vmstat

vmstat(Virtual Memory Statistics)是一个在 Linux 系统中常用的性能分析工具,它提供了关于系统虚拟内存、进程、CPU活动和IO的详细统计信息。通过使用 vmstat,您可以实时监控系统的性能,并且可以快速识别出潜在的瓶颈和问题。

5.1 语法

vmstat [options] [delay [count]]
  • options: 用于指定一些特定的输出选项。

  • delay: 两次输出之间的时间间隔(以秒为单位)。

  • count: 输出次数限制。

5.2 示例

vmstat 5 3

这个示例命令会每隔5秒输出一次统计数据,一共输出3次。

输出示例:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs  us sy id wa st1  0      0 244304  67420 802252    0    0     0     4    3    4   1  1 97  1  00  0      0 243968  67420 802256    0    0     0     0 1159 2292   1  1 98  0  00  0      0 243636  67420 802256    0    0     0     0 1173 2261   1  1 98  0  0

在这个示例中,输出的各个列给出了不同的统计信息,包括进程状态、内存使用、交换空间使用、IO活动、系统活动以及CPU使用率等。通过观察这些数据,您可以了解系统的性能情况并识别潜在的问题。

vmstat 输出的列含义:

  1. procs: 进程相关统计。 r: 正在运行的进程数、b: 等待运行的进程数。

  2. memory: 内存相关统计。swpd: 虚拟内存使用量(以KB为单位)、free: 空闲内存(以KB为单位)、buff: 用作缓冲的内存(以KB为单位)、cache: 用作缓存的内存(以KB为单位)。

  3. swap: 交换空间相关统计。si: 从磁盘读入交换区的数据量(以KB为单位)、so: 向磁盘写入交换区的数据量(以KB为单位)。

  4. io: IO相关统计。bi: 每秒从块设备读入的块数量(如硬盘)(以块为单位)、bo: 每秒写入块设备的块数量(以块为单位)。

  5. system: 系统相关统计。in: 每秒的中断数、cs: 每秒上下文切换数。

  6. cpu: CPU使用情况统计。%us: 用户空间CPU使用率、%sy: 系统CPU使用率、%id: 空闲CPU百分比、%wa: 等待IO的CPU百分比、%st: 用于虚拟化的CPU时间百分比。

6、iostat

iostat 是一个在 Linux 系统中常用的命令,用于监视系统的磁盘和IO性能。它能够提供关于磁盘活动、IO延迟和吞吐量等信息,对于识别磁盘性能瓶颈和调优非常有帮助。

请注意,iostat 命令需要安装 sysstat 包才能使用。在大多数Linux发行版中,您可以使用包管理器来安装 sysstat 包。

6.1 语法

iostat [options] [interval] [count]

选项解释:

  • -c:显示CPU统计信息。

  • -d:显示磁盘统计信息。

  • -k:以千字节为单位显示数据。

  • -m:以兆字节为单位显示数据。

  • -x:显示扩展统计信息,包括更多的磁盘和分区信息。

6.2 示例

iostat 命令的输出包含了各个磁盘和分区的统计数据,以及系统的平均负载、CPU利用率、上下文切换等信息。以下是示例输出的一部分:

Linux 5.4.0-81-generic (hostname)   08/13/2023  _x86_64_    (8 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle7.13    0.00    1.45    0.46    0.00   90.96Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.14        18.60        19.84     123759     132016
sdb               0.06         0.28         0.00       1863          0

在这个示例中,avg-cpu 部分显示了 CPU 利用率的统计信息,Device 部分显示了每个磁盘设备的统计数据,包括传输速率和总的读写字节数。您可以根据输出来评估系统的磁盘性能和负载情况。

  1. 显示平均IO统计信息,每秒更新一次,共更新5次

    iostat
    
  2. 显示详细的磁盘IO统计信息,每秒更新一次,共更新3次

    iostat -d 1 3
    
  3. 以千字节为单位显示数据,显示CPU和磁盘统计信息,每秒更新一次,共更新4次

    iostat -k -c -d 1 4
    
  4. 显示扩展的磁盘IO统计信息,每秒更新一次,共更新5次

    iostat -x 1 5
    

7、tcpdump

tcpdump 是一个在 Unix 系统上常用的网络抓包工具,用于捕获和分析网络数据包。它能够监听网络接口,捕获经过该接口的数据包,并以可读的格式显示数据包的内容。

tcpdump 支持多种过滤选项,以便只捕获感兴趣的数据包。

以下是一些常用的 tcpdump 命令选项以及示例说明:

  1. 基本使用

    tcpdump
    

    这将在默认网络接口上捕获所有的数据包。但是,通常情况下,您会希望使用其他选项来限制抓包的范围。

  2. 指定网络接口

    tcpdump -i eth0
    

    通过 -i 选项指定要捕获的网络接口,这里是 eth0

  3. 指定数据包数量

    tcpdump -c 10
    

    使用 -c 选项可以指定捕获的数据包数量,这里捕获前 10 个数据包。

  4. 捕获特定主机的数据包

    tcpdump host 192.168.1.100
    

    使用 host 关键字可以捕获特定主机的所有数据包。

  5. 捕获特定端口的数据包

    tcpdump port 80
    

    使用 port 关键字可以捕获特定端口的数据包,这里是端口 80(HTTP)的数据包。

  6. 组合多个过滤条件

    tcpdump host 192.168.1.100 and port 22
    

    可以使用逻辑运算符 and 来组合多个过滤条件,这里捕获主机 192.168.1.100 上的端口 22(SSH)数据包。

  7. 保存抓包结果到文件

    tcpdump -w capture.pcap
    

    使用 -w 选项可以将抓包结果保存到文件中,文件格式为 pcap。

  8. 读取保存的抓包文件

    tcpdump -r capture.pcap
    

    使用 -r 选项可以读取保存的抓包文件并显示其内容。

  9. 显示详细数据包信息

    tcpdump -v
    

    使用 -v 选项可以显示详细的数据包信息。

  10. 显示更详细的数据包信息

tcpdump -vv

使用 -vv 选项可以显示更详细的数据包信息,包括解析的协议头。

这只是 tcpdump 的一些基本用法示例,该工具还支持许多其他选项和过滤条件,以满足各种网络抓包和分析的需求。请注意,由于抓包涉及到访问网络数据,通常需要以 root 或者具有适当权限的用户身份运行 tcpdump

相关文章:

Linux系统下的性能分析命令

在 Linux 系统下&#xff0c;有许多用于性能分析和调试的命令和工具&#xff0c;可以帮助您识别系统瓶颈、优化性能以及调查问题。本文将介绍在性能分析过程中&#xff0c;可能使用到的一些命令。 以下是一些常用的性能分析命令和工具汇总&#xff1a; 命令功能简述top用于实…...

第十三课:QtCmd 命令行终端应用程序开发

功能描述&#xff1a;开发一个类似于 Windows 命令行提示符或 Linux 命令行终端的应用程序 一、最终演示效果 QtCmd 不是因为它是 Qt 的组件&#xff0c;而是采用 Qt 开发了一个类似 Windows 命令提示符或者 Linux 命令行终端的应用程序&#xff0c;故取名为 QtCmd。 上述演示…...

Jmeter进阶使用:BeanShell实现接口前置和后置操作

一、背景 我们使用Jmeter做压力测试或者接口测试时&#xff0c;除了最简单的直接对接口发起请求&#xff0c;很多时候需要对接口进行一些前置操作&#xff1a;比如提前生成测试数据&#xff0c;以及一些后置操作&#xff1a;比如提取接口响应内容中的某个字段的值。举个最常用…...

【知识分享】高防服务器的防御机制

【知识分享】高防服务器的防御机制 易受到攻击的网站选择接入高防服务更安全&#xff0c;大家对于这个都清楚!但是对于高防服务如何实现防御来保障安全的&#xff0c;又了解多少呢?今天壹基比小源&#xff08;贰伍壹叁壹叁壹贰玖捌&#xff09;就来说说高防服务实现防御的常规…...

内网穿透-外远程连接中的RabbitMQ服务

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…...

驱动DAY4 字符设备驱动分步注册和ioctl函数点亮LED灯

头文件 #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t; #define PHY_LED1_ADDR 0X50006000 #define PHY_LED2_ADDR 0X50007000 #d…...

Python爬虫——scrapy_当当网图书管道封装

创建爬虫项目 srcapy startproject scrapy_dangdang进入到spider文件里创建爬虫文件&#xff08;这里爬取的是青春文学&#xff0c;仙侠玄幻分类&#xff09; srcapy genspider dang http://category.dangdang.com/cp01.01.07.00.00.00.html获取图片、名字和价格 # 所有的se…...

Linux下如何修改CPU 电源工作模式

最近处理一起历史遗留问题&#xff0c;感觉很爽。 现象&#xff1a; 背景&#xff1a;设备采用ARM&#xff0c;即rk3568处理器&#xff0c;采用Linux系统&#xff1b;主要用于视觉后端处理 现象&#xff1a;当软件运行一段时间&#xff0c;大概1个小时&#xff08;也不是很固定…...

Effective C++学习笔记(8)

目录 条款49&#xff1a;了解new-handler的行为条款50&#xff1a;了解new和delete的合理替换时机条款51&#xff1a;编写new和delete时需固守常规条款52&#xff1a;写了placement new也要写placement delete条款53&#xff1a;不要轻忽编译器的警告条款54&#xff1a;让自己熟…...

学校如何公布录取情况表?这个不用技术的方法,小白老师都能轻松制作

作为一名教师&#xff0c;我深切了解学生和家长们对录取情况的关注和重视。为了满足他们的需求&#xff0c;我们学校一直致力于改进公布录取情况的方式和效果。在本篇文章中&#xff0c;我将向您介绍我们学校独特的录取查询系统&#xff0c;并分享我们选择这种方式的原因。 我…...

Chart GPT免费可用地址共享资源

GPT4.0&#xff1a; https://gpt4e.ninvfeng.xyz github:https://github.com/ninvfeng/chatgpt4 WeUseAi&#xff1a;https://chatb.weuseai.pro AI.LS&#xff1a;https://n7.gpt03.xyz ChatX (iOS/macOS应用)&#xff1a;https://itunes.apple.com/app/id6446304087 ch…...

设计模式十八:中介者模式(Mediator Pattern)

在中介者模式中&#xff0c;多个对象之间不再直接相互通信&#xff0c;而是通过一个中介者对象进行通信。这可以减少对象之间的依赖关系&#xff0c;使系统更加模块化。中介者模式适用于当对象之间的通信逻辑变得复杂&#xff0c;导致代码难以维护和理解时。 中介者模式使用场…...

神经网络基础-神经网络补充概念-12-向量化逻辑回归的梯度输出

代码实现 import numpy as npdef sigmoid(z):return 1 / (1 np.exp(-z))def compute_loss(X, y, theta):m len(y)h sigmoid(X.dot(theta))loss (-1/m) * np.sum(y * np.log(h) (1 - y) * np.log(1 - h))return lossdef compute_gradient(X, y, theta):m len(y)h sigmoi…...

2023-08-16力扣每日一题

链接&#xff1a; 2682. 找出转圈游戏输家 题意&#xff1a; 环形1到n&#xff0c;从1开始&#xff0c;每次移动 第i次*k &#xff0c;当移动到出现过的序号时停下&#xff0c; 求没移动到的数字 解&#xff1a; 简单模拟题&#xff0c;我也以为有数学做法&#xff0c;可…...

耗资170亿美元?三星电子在得克萨斯州建设新的半导体工厂

据报道&#xff0c;三星电子在得克萨斯州泰勒市建设的新的半导体工厂预计将于2024年下半年投入运营。这座工厂将成为三星电子在美国的第二座芯片代工厂&#xff0c;与位于得克萨斯州奥斯汀市的第一座工厂相距不远。 此次投资将耗资约170亿美元&#xff0c;显示了三星电子在半导…...

黑马项目一阶段面试58题 Web14题(一)

一、什么是AJAX 异步的JavaScript和XML。用来做前端和后端的异步请求的技术。 异步请求&#xff1a;只更新部分前端界面的请求&#xff0c;做到局部更新。 比如注册&#xff0c;提示用户名已存在而整个页面没有动 比如百度图片搜索美女&#xff0c;进度条越变越短&#xff…...

多线程与高并发--------线程池

线程池 一、什么是线程池 在开发中&#xff0c;为了提升效率的操作&#xff0c;我们需要将一些业务采用多线程的方式去执行。 比如有一个比较大的任务&#xff0c;可以将任务分成几块&#xff0c;分别交给几个线程去执行&#xff0c;最终做一个汇总就可以了。 比如做业务操…...

深度学习实战48-【未来的专家团队】基于AutoCompany模型的自动化企业概念设计与设想

大家好,我是微学AI,今天给大家介绍一下深度学习实战48-【未来的专家团队】基于AutoCompany模型的自动化企业概念设计与设想,文本将介绍AutoCompany模型的概念设计,涵盖了AI智能公司的各个角色,并结合了GPT-4接口来实现各个角色的功能,设置中央控制器,公司运作过程会生成…...

深入剖析:如何通过API优化云计算架构?快来看!

在当今数字化时代&#xff0c;云计算已经成为企业实现创新、提高效率和降低成本的核心策略之一。而在构建和管理云计算架构时&#xff0c;API&#xff08;应用程序编程接口&#xff09;的作用变得愈发重要。本文将深入探讨如何通过API优化云计算架构&#xff0c;实现更高效、灵…...

基于STM32设计的中药分装系统

一、设计需求 基于STM32设计的中药分装系统 【1】项目背景 中药文化是我国文化瑰宝之一,它具有疗效好、副作用小的优点,而且相对于西药,全天然的中药还具有标本兼治的特点,不仅可以用来治病,更可以对患者身体进行调理,所以格外受到当今一直追求生活质量的人们的追捧&quo…...

消息队列学习笔记

消息队列基础 适合消息队列解决的问题 异步处理&#xff1a;处理完关键步骤后直接返回结果&#xff0c;后续放入队列慢慢处理流量控制&#xff1a; 使用消息队列隔离网关和后端服务&#xff0c;以达到流量控制和保护后端服务的目的。能根据下游的处理能力自动调节流量&#x…...

贝锐蒲公英:助力企业打造稳定高效的智能安防监控网络

随着技术的快速发展和物联网的普及&#xff0c;企业面临着许多安全威胁和风险&#xff0c;如盗窃、入侵、信息泄露等&#xff0c;企业需要建立安防监控系统来保护其资产、员工和业务运营的安全。 然而&#xff0c;企业在搭建安防监控系统的过程中&#xff0c;可能会面临一些难…...

SASS 学习笔记

SASS 学习笔记 总共会写两个练手项目&#xff0c;成品在 https://goldenaarcher.com/scss-study 可以看到&#xff0c;代码在 https://github.com/GoldenaArcher/scss-study。 什么是 SASS SASS 是 CSS 预处理&#xff0c;它提供了变量&#xff08;虽然现在 CSS 也提供了&am…...

Web菜鸟教程 - Springboot接入认证授权模块

网络安全的重要性不言而喻&#xff0c;如今早已不是以前随便弄个http请求就能爬到数据的时代&#xff0c;而作为一个架构师&#xff0c;网络安全必须在产品开发之初就考虑好。因为在产品开发的后期&#xff0c;一方面是客户增多&#xff0c;压力变大&#xff0c;可供利用的时间…...

【深入理解ES6】块级作用域绑定

1. var声明及变量提升机制 提升&#xff08;Hoisting&#xff09;机制&#xff1a;通过关键字var声明的变量&#xff0c;都会被当成在当前作用域顶部生命的变量。 function getValue(condition){if(condition){var value "blue";console.log(value);}else{// 此处…...

使用fake为数据库生成随机数据

参考https://cloud.tencent.com/developer/article/1663417 增加了自己的代码&#xff0c;使得只需要构建内容映射字典&#xff0c;然后根据字典就可以直接将数据插入到数据库中 from faker import Faker import pandas as pd from urllib import parse # from pymongo import…...

树结构转List

使用LinkedList效率更高 1、单个顶级节点 public static List<CmsStudentOutline> getTreeList(CmsStudentOutline root) {List<CmsStudentOutline> list new ArrayList<>();Queue<CmsStudentOutline> queue new LinkedList<>();if (root nu…...

Android复习(Android基础-四大组件)——Broadcast

1. 广播分类 广播的发送方式&#xff1a;标准广播、有序广播、粘性广播广播的类型&#xff1a;系统广播、本地广播 1.1 标准广播 完全异步&#xff0c;无序的广播发出后&#xff0c;所有的广播接收器几乎都会在同一时间收到消息。&#xff08;异步&#xff09;但是消息无法截…...

Ubuntu下mysql8开启远程连接

环境 mysql8ubuntu22.04 更改配置文件 vim /etc/mysql/mysql.conf.d/mysqld.conf找到 bind-address 127.0.0.1 mysqlx-bind-address 127.0.0.1 把这两行注释掉&#xff0c;保存退出即可 修改mysql配置 登录mysql创建一个远程连接账户,名字任意&#xff0c;密码任意,用户名…...

java对象和json类型转换

fastjson参考 参考&#xff1a;http://doc.yaojieyun.com/www.runoob.com/w3cnote/java-json-instro.html 参考&#xff1a; http://doc.yaojieyun.com/www.runoob.com/w3cnote/fastjson-intro.html 序列化&#xff1a;JSON.toJSONString(person)将Java 对象转换为 JSON 字符串…...