1. sysstat service

1.1. /etc/cron.d/sysstat

Linux 下的性能分析,少不了要使用 sysstat 工具包中的命令。同时 sysstat 服务会自动每个10分钟收集一次系统状态信息,并将它们存储到 /var/log/sa目录下。每天一个文件,文件名分别是sa01, sa02,... sa30..

[root@localhost sa]# pwd
/var/log/sa
[root@localhost sa]# ls
sa01 sa03 sa05 sa06 sa07 sa08 sa09 sa10 sa11 sa12 sa13 sa14 sa15 sa25 sa26 sa27 sa28 sa29 sa30 sar25

自动收集系统信息,是通过 /etc/cron.d/sysstat 来实现的:

[root@localhost sa]# cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/ * * * * root /usr/lib/sa/sa1
# 0 * * * * root /usr/lib/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
* * * root /usr/lib/sa/sa2 -A

上面标示每个10分钟,运行一次 /usr/lib/sa/sa1 1 1, 该命令 man sa1:

sa1 - Collect and store binary data in the system activity daily data file.

SYNOPSIS:/usr/lib/sa/sa1 [ --boot | interval count ]

sa1 收集到的是 binary data. 所以 sa2 -A 负责将当天的二进制文件转换成文本文件。

sa2 - Write a daily report in the /var/log/sa directory

其中的收集信息的频率(10分钟一次)我们可以根据需要进行修改。

1.2. /etc/sysconfig/sysstat

/var/log/sa/目录下的文件保存时间等相关配置存在于文件 /etc/sysconfig/sysstat中:

[root@localhost ~]# cat /etc/sysconfig/sysstat
# sysstat-9.0.4 configuration file. # How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY= # Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER= # Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK" # Compression program to use.
ZIP="bzip2"

其中的 HISTORY=28 表示最多保存28天的数据。保存时间,我们可以根据需要进行修改。

1.3. 确保 sysstat 服务启动:

[root@localhost ~]# chkconfig --level 35 sysstat on
[root@localhost ~]# chkconfig |grep sysstat
sysstat :off :on :on :on :on :on :off

上面是 sysstat 服务运行的知识。下面是 sysstat 工具包中的命令行如何使用收集到的信息,来了解系统的运行情况。

2. sysstat 工具包中的命令

sysstat工具包中有很多的分析命令,常用的有:sar, iostat, mpstat(multi processor stat), pidstat, vmstat等等。

其中的sar命令尤其强大,它一个命令就能够收集系统CPU, 内存,磁盘,网络,进程切换,swap, 甚至文件inode,等个方面的信息。sar 的应用比较多,而且也比较复杂,数据更为精确。

2.1 sar 命令

1)sar -u 查看CPU信息:

sar -u, sar -u ALL, sar -u 1 5, sar -u ALL 1 5

[root@localhost ~]# sar -u 1 2
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM CPU %user %nice %system %iowait %steal %idle
:: AM all 0.99 0.00 2.97 0.00 0.00 96.04
:: AM all 0.00 0.00 3.03 0.00 0.00 96.97
Average: all 0.50 0.00 3.00 0.00 0.00 96.50

2)sar -r, sar -R 查看内存信息:

sar -r, sar -R, sar -r 1 5, sar -R 1 5

[root@localhost ~]# sar -r  1 2
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
:: AM 20.00 3.96
:: AM 20.00 3.96
Average: 20.00 3.96
[root@localhost ~]# sar -R 1 2
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM frmpg/s bufpg/s campg/s
:: AM -11.11 0.00 0.00
:: AM 0.00 0.00 0.00
Average: -5.56 0.00 0.00

3)sar -S, sar -W 查看 swap:

sar -S, sar -S 1 5, sar -W, sar -W 1 5. sar -S 查看的是swap空间的使用情况,sar -W 是每秒发生的swap/page情况

[root@localhost ~]# sar -S
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM LINUX RESTART :: AM kbswpfree kbswpused %swpused kbswpcad %swpcad
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
Average: 0.00 0.00
[root@localhost ~]# sar -S 1 5
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM kbswpfree kbswpused %swpused kbswpcad %swpcad
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
Average: 0.00 0.00
[root@localhost ~]# sar -W
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM LINUX RESTART :: AM pswpin/s pswpout/s
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
Average: 0.00 0.00
[root@localhost ~]# sar -W 1 5
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM pswpin/s pswpout/s
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
Average: 0.00 0.00

4)sar -b, sar -B 查看磁盘IO:

sar -b, sar -b 1 5, sar -B, sar -B 1 5. sar -b 查看磁盘tps(iops);sar -B 主要查看每秒磁盘 page/ fault

[root@localhost ~]# sar -b
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM LINUX RESTART :: AM tps rtps wtps bread/s bwrtn/s
:: AM 0.01 0.00 0.01 0.00 0.11
:: AM 0.06 0.03 0.03 1.41 0.43
:: AM 0.01 0.00 0.01 0.00 0.11
:: AM 0.01 0.00 0.01 0.00 0.17
:: AM 0.16 0.10 0.06 4.84 0.89
:: AM 18.11 17.81 0.31 334.52 26.32
:: AM 0.11 0.09 0.02 5.12 0.34
:: AM 0.02 0.00 0.02 0.00 0.17
Average: 2.31 2.25 0.06 43.13 3.56
[root@localhost ~]# sar -b 1 5
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM tps rtps wtps bread/s bwrtn/s
:: AM 0.00 0.00 0.00 0.00 0.00
:: AM 0.00 0.00 0.00 0.00 0.00
:: AM 0.00 0.00 0.00 0.00 0.00
:: AM 0.00 0.00 0.00 0.00 0.00
:: AM 0.00 0.00 0.00 0.00 0.00
Average: 0.00 0.00 0.00 0.00 0.00
[root@localhost ~]# sar -B
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM LINUX RESTART :: AM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
:: AM 0.00 0.05 3.29 0.00 0.86 0.00 0.00 0.00 0.00
:: AM 0.71 0.22 12.02 0.00 3.16 0.00 0.00 0.00 0.00
:: AM 0.00 0.05 3.43 0.00 0.85 0.00 0.00 0.00 0.00
:: AM 0.00 0.09 3.28 0.00 0.83 0.00 0.00 0.00 0.00
:: AM 2.42 0.44 59.48 0.02 14.86 0.00 0.00 0.00 0.00
:: AM 167.26 13.16 1580.24 0.09 336.45 0.00 0.00 0.00 0.00
:: AM 2.56 0.17 15.00 0.02 3.95 0.00 0.00 0.00 0.00
:: AM 0.00 0.09 25.18 0.00 9.43 0.00 0.00 0.00 0.00
Average: 21.57 1.78 212.26 0.02 46.20 0.00 0.00 0.00 0.00
[root@localhost ~]# sar -B 1 5
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
:: AM 0.00 0.00 45.45 0.00 59.60 0.00 0.00 0.00 0.00
:: AM 0.00 0.00 38.38 0.00 59.60 0.00 0.00 0.00 0.00
:: AM 0.00 0.00 30.30 0.00 59.60 0.00 0.00 0.00 0.00
:: AM 0.00 0.00 30.30 0.00 59.60 0.00 0.00 0.00 0.00
:: AM 0.00 0.00 30.00 0.00 59.00 0.00 0.00 0.00 0.00
Average: 0.00 0.00 34.88 0.00 59.48 0.00 0.00 0.00 0.00

5)sar -d 查看磁盘IO活动:

[root@localhost ~]# sar -d
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM LINUX RESTART :: AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
:: AM dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM dev8- 0.01 0.00 0.11 12.80 0.00 2.00 1.60 0.00
:: AM dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM dev8- 0.06 1.41 0.43 29.62 0.00 5.86 5.30 0.03
:: AM dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM dev8- 0.01 0.00 0.11 12.80 0.00 2.80 2.60 0.00
:: AM dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM dev8- 0.01 0.00 0.17 14.86 0.00 3.29 2.14 0.00
:: AM dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM dev8- 0.16 4.84 0.89 35.13 0.00 7.26 6.59 0.11
:: AM dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM dev8- 18.11 334.52 26.32 19.92 0.05 3.15 2.98 5.40
:: AM dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM dev8- 0.11 5.12 0.34 50.62 0.00 20.66 13.55 0.15
:: AM dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM dev8- 0.02 0.00 0.17 11.56 0.00 1.67 1.56 0.00
Average: dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev8- 2.31 43.13 3.56 20.25 0.01 3.29 3.08 0.71
[root@localhost ~]# sar -d 1 3
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
:: AM dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM dev8- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 :: AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
:: AM dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM dev8- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 :: AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
:: AM dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM dev8- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: dev11- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev8- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

6)sar -n { keyword [,...] | ALL } 查看网络:

Possible keywords are DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP,  ETCP,  UDP,  SOCK6,  IP6,  EIP6, ICMP6, EICMP6 and UDP6.

你想查看网络哪个方面的信息,就将 keyword 换成上面的那个选项。

sar -n DEV 查看网络设备上的数据包收发情况,sar -n EDEV 查看网络设备上发生的数据包收发错误的情况,sar -n DEV 1 5, sar -n EDEV 1 5.

[root@localhost ~]# sar -n DEV 1 2
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
:: AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 :: AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
:: AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM eth0 2.02 3.03 0.12 0.70 0.00 0.00 0.00
:: AM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 1.01 1.52 0.06 0.35 0.00 0.00 0.00
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
[root@localhost ~]# sar -n EDEV 1 2
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
:: AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 :: AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
:: AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
:: AM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

sar -n TCP, sar -n TCP 1 5 查看TCP;sar -n ETCP 查看tcp错误; sar -n SOCK, sar -n SOCK 1 5 查看socket;

7)sar -q 查看系统load负载:

[root@localhost ~]# sar -q
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM LINUX RESTART :: AM runq-sz plist-sz ldavg- ldavg- ldavg-
:: AM 0.00 0.02 0.09
:: AM 0.00 0.00 0.03
:: AM 0.00 0.00 0.00
:: AM 0.00 0.00 0.00
:: AM 0.00 0.00 0.00
:: AM 0.00 0.16 0.14
:: AM 0.00 0.02 0.06
:: AM 0.00 0.00 0.00
:: AM 0.00 0.00 0.00
Average: 0.00 0.02 0.04
[root@localhost ~]# sar -q 1 3
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM runq-sz plist-sz ldavg- ldavg- ldavg-
:: AM 0.00 0.00 0.00
:: AM 0.00 0.00 0.00
:: AM 0.00 0.00 0.00
Average: 0.00 0.00 0.00

runq-sz 表示在CPU上排队等待执行的任务;plist-sz系统所有任务。

8)sar -w 每秒进程创建 和 进程切换:

[root@localhost ~]# sar -w
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM LINUX RESTART :: AM proc/s cswch/s
:: AM 0.01 25.14
:: AM 0.04 25.58
:: AM 0.01 25.01
:: AM 0.01 25.40
:: AM 0.19 27.64
:: AM 4.02 120.10
:: AM 0.04 41.77
:: AM 0.09 38.55
:: AM 0.23 50.63
Average: 0.51 42.18
[root@localhost ~]# sar -w 1 4
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM proc/s cswch/s
:: AM 0.00 80.39
:: AM 0.00 90.82
:: AM 0.00 45.45
:: AM 0.00 60.00
Average: 0.00 69.17

9)sar -W 每秒swap/page:

[root@localhost ~]# sar -W
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM LINUX RESTART :: AM pswpin/s pswpout/s
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
Average: 0.00 0.00
[root@localhost ~]# sar -W 1 4
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM pswpin/s pswpout/s
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
:: AM 0.00 0.00
Average: 0.00 0.00

10)sar -v 查看文件inode使用,缓存情况:

[root@localhost ~]# sar -v
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM LINUX RESTART :: AM dentunusd file-nr inode-nr pty-nr
:: AM
:: AM
:: AM
:: AM
:: AM
:: AM
:: AM
:: AM
:: AM
Average:
[root@localhost ~]# sar -v 1 3
Linux 2.6.-.el6.i686 (localhost.localdomain) // _i686_ ( CPU) :: AM dentunusd file-nr inode-nr pty-nr
:: AM
:: AM
:: AM
Average:

2.2 iostat 命令

注意查看IO和CPU负载情况

参见:http://www.cnblogs.com/digdeep/p/4863502.html 和 man 手册

2.3 mpstat 命令

注意查看多核CPU情况

参见:http://www.cnblogs.com/digdeep/p/4847484.html 和 man 手册

2.4 pidstat命令

注意查看进程情况

参见:http://www.cnblogs.com/digdeep/p/4847484.html 和 man 手册

Linux 性能优化工具包 sysstat 以及 sysstat 服务的更多相关文章

  1. Linux性能优化-平均负载

    Linux性能优化-平均负载 目录 Linux性能优化-平均负载 平均负载的含义 平均负载为多少时合理 平均负载与 CPU 使用率 平均负载案例分析 场景一:CPU 密集型进程 场景二:I/O 密集型 ...

  2. Linux 性能优化之 IO 子系统 系列 图

    http://blog.sina.com.cn/s/articlelist_1029388674_11_1.html Linux 性能优化之 IO 子系统(一) 本文介绍了对 Linux IO 子系统 ...

  3. 如何学习Linux性能优化?

    如何学习Linux性能优化? 你是否也曾跟我一样,看了很多书.学了很多 Linux 性能工具,但在面对 Linux 性能问题时,还是束手无策?实际上,性能分析和优化始终是大多数软件工程师的一个痛点.但 ...

  4. Linux 性能优化解析

    前情概述 进程调度 老板 cpu 任劳任怨的打工仔 线程 工作在做什么 可运行队列 拥有的工作清单 上下文切换 和老板沟通以便得到老板的想法并及时调整自己的工作 中断 部分工作做完以后还需要及时向老板 ...

  5. 深挖计算机基础:Linux性能优化学习笔记

    参考极客时间专栏<Linux性能优化实战>学习笔记 一.CPU性能:13讲 Linux性能优化实战学习笔记:第二讲 Linux性能优化实战学习笔记:第三讲 Linux性能优化实战学习笔记: ...

  6. Linux 性能优化排查工具

    下图1为 Linux 性能优化排查工具的总结 图1 诊断 CPU 工具 查看 CPU 核数 总核数 = 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU ...

  7. Linux性能优化从入门到实战:01 Linux性能优化学习路线

      我通过阅读各种相关书籍,从操作系统原理.到 Linux内核,再到硬件驱动程序等等.   把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序.库函数.系统调用.再到内核和硬件等不同的层级贯 ...

  8. 《Linux 性能优化实战—倪朋飞 》学习笔记 CPU 篇

    平均负载 指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即平均活跃进程数 可运行状态:正在使用CPU或者正在等待CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态 (Run ...

  9. linux性能优化cpu-02平均负载

    每次我们系统变慢时,我们通常做的第一件事就是top命令或者uptime命令,看一下系统的负载情况,比如下面: 我在命令行中输入uptime 22:15:51    表示当前系统时间 up 13 min ...

随机推荐

  1. [译]WebVR技术方案草案

    注:基于官方的.bs规范专用格式进行了翻译,但结果发现无法编译成html格式,所幸基本兼容.markdown格式. 中文翻译项目地址:https://github.com/web3d/webvr-sp ...

  2. Scalaz(50)- scalaz-stream: 安全的无穷运算-running infinite stream freely

    scalaz-stream支持无穷数据流(infinite stream),这本身是它强大的功能之一,试想有多少系统需要通过无穷运算才能得以实现.这是因为外界的输入是不可预料的,对于系统本身就是无穷的 ...

  3. Vue从零开始(一)

    一.什么是Vue? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层 ...

  4. mysql批量插入数据的基类

    自己设计的一个mysql数据库批量添加数据的基类.用于批量向mysql数据库添加数据,子类实现起来很简单,自测性能也还不错. 1.基类实现-BatchAddBase using System.Coll ...

  5. C++之面向对象的三个基本特征

    三大特性是:封装,继承,多态 所谓封装 就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.封装是面向对象的特征之一,是对象和类概念的主要特性. ...

  6. SlimerJS – Web开发人员可编写 JS 控制的浏览器

    SlimerJS 是一个提供给 Web 开发人员,可通过脚本编程控制的浏览器.它可以让你使用 Javascript 脚本操纵一个网页:打开一个网页,点击链接,修改的内容等,这对于做功能测试,页面自动机 ...

  7. CSS常用标签

    CSS常用标签 一 CSS文字属性 color : #999999; /*文字颜色*/ font-family : 宋体,sans-serif; /*文字字体*/ font-size : 9pt; / ...

  8. 【经验之谈】前端面试知识点总结(CSS相关)——附答案

    目录 二.CSS部分 1.解释一下CSS的盒子模型? 2.请你说说CSS选择器的类型有哪些,并举几个例子说明其用法? 3.请你说说CSS有什么特殊性?(优先级.计算特殊值) 4.要动态改变层中内容可以 ...

  9. sizzle源码分析 (2)ID 类 tag querySelectorAll 快速匹配

    不是所有的选择器都需要去分词,生成相应的匹配函数,这样流程比较复杂,当浏览器具备原生的方法去匹配元素是,没有理由不优先匹配,下面看看进入Sizzle后,它是怎么优先匹配这些元素的: function ...

  10. 简单代码在ABAP中实现声音的播放

    这段代码的功能是在SAP里面实现声音的播放,可以用作程序提醒功能,和SAP里面’噹噹噹’那个声音的意思差不多.将来在项目中遇到客户想要SAP ABAP发出一点声音的时候就可以参考一下这个程序. REP ...