一.SWAP 说明

1.1 SWAP 概述

当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

这个是SWAP 交换分区的作用。 实际上,我们更关注的应该是SWAP分区的大小问题。 设置多大才是最优的。

一般来说可以按照如下规则设置swap大小:

4G以内的物理内存,SWAP 设置为内存的2倍。

4-8G的物理内存,SWAP 等于内存大小。

8-64G 的物理内存,SWAP 设置为8G。

64-256G物理内存,SWAP 设置为16G。

实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。

1.2 系统在什么情况下才会使用SWAP?

实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。

[root@rhce ~]# cat /proc/sys/vm/swappiness

60

该值默认值是60.

swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,

swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

现在服务器的内存动不动就是上百G,所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对swap的使用,从而提高系统的性能。

1.3 如何修改swappiness参数?

--临时性修改:

[root@rhce ~]# sysctl vm.swappiness=10

vm.swappiness = 10

[root@rhce ~]# cat /proc/sys/vm/swappiness

10

这里我们的修改已经生效,但是如果我们重启了系统,又会变成60.

--永久修改:

在/etc/sysctl.conf 文件里添加如下参数:

vm.swappiness=10

或者:

[root@rhce ~]# echo 'vm.swappiness=10' >>/etc/sysctl.conf

保存,重启,就生效了。

二.管理SWAP

2.1 查看系统当前SWAP 空间大小

[root@dave ~]# free -m

total       used       free    shared    buffers     cached

Mem:         1954       1923         31          0         21       1345

-/+ buffers/cache:        555       1399

Swap:        1999         21       1978

2.2 释放SWAP 空间

假设我们的系统出现了性能问题,我们通过vmstat命令看到有大量的swap,而我们的物理内存又很充足,那么我们可以手工把swap 空间释放出来。让进程去使用物理内存,从而提高性能。

[root@dave ~]# vmstat 1 5

procs -----------memory---------- ---swap-------io---- --system-- -----cpu-----

r  b  swpd   free   buff cache   si   so   bi    bo   in  cs us sy id wa st

0  0 22272  32620  22032 1378312    0   0    33    38   0   41 1  2 96  0  0

0  0 22272  32612  22032 1378340    0   0     0     0 902 1627  0  5 95 0  0

0  0 22272  32612  22032 1378340    0   0     0     0 905 1636  1  8 91 0  0

0  0 22272  32612  22032 1378340    0   0     0    32 907 1616  0  6 94 0  0

0  0 22272  32612  22032 1378340    0   0     0     0 924 1651  0  8 92 0  0

[root@dave ~]#

[root@dave ~]# free -m

total       used       free    shared    buffers    cached

Mem:         1954       1923         31          0         21       1345

-/+ buffers/cache:        555       1399

Swap:         1999         21       1978

注意:free命令默认单位为k, -m 单位为M。 我们这里的swap使用了21M的空间。

--查看当前swap 的使用

[root@dave ~]# swapon -s

Filename                                Type            Size    Used   Priority

/dev/sda2                               partition       2047992 22272   -1

[root@dave ~]# cat /proc/swaps

Filename                                Type            Size    Used   Priority

/dev/sda2                               partition       2047992 22272   -1

[root@dave ~]#

swapon –s 等于 cat/proc/swaps

--关闭swap 交换分区:

[root@dave ~]# swapoff/dev/sda2

[root@dave ~]# swapon -s

Filename                                Type            Size    Used   Priority

--查看swap的使用情况:

[root@dave ~]# free -m

total       used       free    shared    buffers     cached

Mem:         1954       1939         15          0         21       1343

-/+ buffers/cache:        573       1381

Swap:           0          0          0

--启用swap分区:

[root@dave ~]# swapon /dev/sda2

--验证状态:

[root@dave ~]# swapon -s

Filename                                Type            Size    Used   Priority

/dev/sda2                               partition       2047992 0       -1

这里/dev/sda2是我们在安装操作系统时划分的磁盘分区。实际上,我们也可以使用文件来做为交换分区。具体后面会演示。

我们上面写的是具体名称,也可是使用swapoff  -a进程,演示如下:

[root@dave ~]# swapoff -a

[root@dave ~]# swapon -s

Filename                                Type            Size    Used   Priority

[root@dave ~]# swapon -a

[root@dave ~]# swapon -s

Filename                                Type            Size    Used   Priority

/dev/sda2                               partition       2047992 0       -1

[root@dave ~]#

我们查看/etc/fstab 文件,我们的swap 也配置到开启自动启动了。

[root@dave ~]# cat /etc/fstab

#

# /etc/fstab

# Created by anaconda on Wed Aug 15 00:09:26 2012

#

# Accessible filesystems, by reference, aremaintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8)and/or blkid(8) for more info

#

UUID=beea0820-3ac3-4551-9bf0-1b2a462d3ab4 /                       ext4    defaults        1 1

UUID=e5ec9543-143f-4e3b-b8a7-4fa05b01836a/boot                   ext4    defaults        1 2

UUID=b256c0bb-9000-456b-b9eb-18239b5df5ddswap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

简单的说:

(1)ext分区是否启用由mount及umount控制。

(2)swap分区是否启动,由swapon及swapoff控制。

我们对swap 空间的释放,也是通过关闭swap分区,在启动swap 分区来实现的。

2.3 使用文件来作为SWAP 交换分区

我们这里使用文件添加一个交换区,具体操作如下:

--在根目录下生成一个文件:swap-file,大小1G:

[root@dave u01]# dd if=/dev/zero of=/swap-filebs=1M count=1024

1024+0 records in

1024+0 records out

1073741824 bytes (1.1 GB) copied, 5.91518 s, 182MB/s

[root@dave u01]# cd /

[root@dave /]# ls

bin  cgroup  etc   lib   lost+found  misc  net proc  sbin     srv       sys  u01  usr

boot dev     home  lib64 media       mnt   opt root  selinux  swap-file tmp  u02  var

[root@dave /]#

--将生成的文件格式化成交换分区:

[root@dave /]# mkswap /swap-file

mkswap: /swap-file: warning: don't erase bootbitssectors

onwhole disk. Use -f to force.

Setting up swapspace version 1, size = 1048572 KiB

no label, UUID=653bbeb5-4abb-4295-b110-5847e073140d

--这里没有分区的lable,只有一个UUID。

--启动swap分区并查看状态:

[root@dave /]# swapon /swap-file

[root@dave /]# swapon -s

Filename                                Type            Size    Used   Priority

/dev/sda2                               partition       2047992 0       -1

/swap-file                              file            1048568 0       -2

这里我们就看到了2个swap。

但是这个只对当前有效,如果想下次重启系统后还继续有效,需要将配置写入到/etc/fstab文件中。

在/etc/fstab文件中添加如下内容:

UUID=653bbeb5-4abb-4295-b110-5847e073140d swap                    swap    defaults        0 0

或者:

/swap-file swap                    swap    defaults        0 0

2.4 使用磁盘添加swap

先划分一个1G的磁盘分区出来:

[root@rhce /]# fdisk /dev/sdb

Device contains neither a valid DOS partitiontable, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier0x65edb587.

Changes will remain in memory only, until youdecide to write them.

After that, of course, the previous content won'tbe recoverable.

Warning: invalid flag 0x0000 of partition table 4will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It'sstrongly recommended to

switch off the mode (command 'c') and change display units to

sectors (command 'u').

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-652, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-652,default 652): +1G

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@rhce /]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000bcd24

DeviceBoot      Start         End      Blocks  Id  System

/dev/sda1  *           1         128    1024000   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2             128         511    3072000   82  Linux swap / Solaris

Partition 2 does not end on cylinder boundary.

/dev/sda3             511        2611   16874496   83  Linux

Disk /dev/sdb: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x65edb587

DeviceBoot      Start         End      Blocks  Id  System

/dev/sdb1               1         132    1060258+  83  Linux

注意这里fdisk ID的编号。 这里显示的83,它代表这个分区是ext的分区,这个是不能用来做swap的。

在fdisk 命令可以看到具体数据的含义:

Command (m for help): l

0  Empty           24 NEC DOS         81  Minix / old Lin bf  Solaris

1  FAT12           39 Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-

2  XENIX root      3c PartitionMagic  83  Linux           c4 DRDOS/sec (FAT-

3  XENIX usr       40 Venix 80286     84  OS/2 hidden C:  c6 DRDOS/sec (FAT-

4  FAT16 <32M      41 PPC PReP Boot   85  Linux extended  c7 Syrinx

5  Extended        42 SFS             86  NTFS volume set da  Non-FS data

6  FAT16           4d QNX4.x          87  NTFS volume set db  CP/M / CTOS / .

7  HPFS/NTFS       4e QNX4.x 2nd part 88  Linuxplaintext de  Dell Utility

8  AIX            4f  QNX4.x 3rd part 8e  Linux LVM       df BootIt

9  AIX bootable    50 OnTrack DM      93  Amoeba          e1 DOS access

a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3 DOS R/O

b  W95 FAT32       52 CP/M            9f BSD/OS          e4  SpeedStor

c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs

e  W95 FAT16 (LBA) 54  OnTrackDM6      a5 FreeBSD         ee  GPT

f  W95 Ext'd (LBA) 55  EZ-Drive        a6 OpenBSD         ef  EFI (FAT-12/16/

10  OPUS            56 Golden Bow      a7  NeXTSTEP        f0 Linux/PA-RISC b

11  HiddenFAT12    5c  Priam Edisk     a8 Darwin UFS      f1  SpeedStor

12  Compaqdiagnost 61  SpeedStor       a9 NetBSD          f4  SpeedStor

14  HiddenFAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2 DOS secondary

16  HiddenFAT16    64  Novell Netware  af  HFS/ HFS+      fb  VMware VMFS

17  HiddenHPFS/NTF 65  Novell Netware  b7 BSDI fs         fc  VMware VMKCORE

18  ASTSmartSleep  70  DiskSecure Mult b8  BSDI swap       fd Linux raid auto

1b  HiddenW95 FAT3 75  PC/IX           bb Boot Wizard hid fe  LANstep

1c  HiddenW95 FAT3 80  Old Minix       be Solaris boot    ff  BBT

1e  HiddenW95 FAT1

ext的分区ID号:0x83   

swap的分区ID号:0x82

--将/dev/sdb1分区改成swap 分区:

[root@rhce ~]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It'sstrongly recommended to

switch off the mode (command 'c') and change display units to

sectors (command 'u').

Command (m for help): h

h: unknown command

Command action

a   toggle a bootable flag

b   edit bsd disklabel

c   toggle the dos compatibility flag

d   delete a partition

l   list known partition types

m   print this menu

n   add a new partition

o   create a new empty DOS partition table

p   print the partition table

q   quit without saving changes

s   create a new empty Sun disklabel

t   change a partition's system id

u   change display/entry units

v   verify the partition table

w   write table to disk and exit

x   extra functionality (experts only)

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): L

0  Empty           24 NEC DOS         81  Minix / old Lin bf  Solaris

1  FAT12           39 Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-

2  XENIX root      3c PartitionMagic  83  Linux           c4 DRDOS/sec (FAT-

3  XENIX usr      40  Venix 80286     84 OS/2 hidden C:  c6  DRDOS/sec (FAT-

4  FAT16 <32M      41 PPC PReP Boot   85  Linux extended  c7 Syrinx

5  Extended        42 SFS             86  NTFS volume set da  Non-FS data

6  FAT16           4d QNX4.x          87 NTFS volume set db  CP/M / CTOS /.

7  HPFS/NTFS       4e QNX4.x 2nd part 88  Linuxplaintext de  Dell Utility

8  AIX             4f QNX4.x 3rd part 8e  Linux LVM       df BootIt

9  AIX bootable    50 OnTrack DM      93  Amoeba          e1 DOS access

a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3 DOS R/O

b  W95 FAT32       52 CP/M            9f  BSD/OS          e4 SpeedStor

c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs

e  W95 FAT16 (LBA) 54  OnTrackDM6      a5 FreeBSD         ee  GPT

f  W95 Ext'd (LBA) 55  EZ-Drive        a6 OpenBSD         ef  EFI (FAT-12/16/

10  OPUS            56 Golden Bow      a7  NeXTSTEP        f0 Linux/PA-RISC b

11  HiddenFAT12    5c  Priam Edisk     a8 Darwin UFS      f1  SpeedStor

12  Compaqdiagnost 61  SpeedStor       a9 NetBSD          f4  SpeedStor

14  HiddenFAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2 DOS secondary

16  HiddenFAT16    64  Novell Netware  af  HFS/ HFS+      fb  VMware VMFS

17  HiddenHPFS/NTF 65  Novell Netware  b7 BSDI fs         fc  VMware VMKCORE

18  ASTSmartSleep  70  DiskSecure Mult b8  BSDI swap       fd Linux raid auto

1b  HiddenW95 FAT3 75  PC/IX           bb Boot Wizard hid fe  LANstep

1c  HiddenW95 FAT3 80  Old Minix       be Solaris boot    ff  BBT

1e  HiddenW95 FAT1

Hex code (type L to list codes):82

Changed system type of partition1 to 82 (Linux swap / Solaris)

--注意这里更改磁盘分区的ID类型,如果不更在,在系统重启时会根据ID来判断磁盘的类型,那样在使用时就会出现错误。

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed witherror 16: Device or resource busy.

The kernel still uses the old table. The new tablewill be used at

the next reboot or after you run partprobe(8) orkpartx(8)

Syncing disks.

[root@rhce ~]#

--格式化swap分区:

[root@rhce /]# mkswap /dev/sdb1

Setting up swapspace version 1, size = 1060252 KiB

no label, UUID= bc913e6b-209a-49a7-b561-9b8c57294681

[root@rhce /]# mkswap –L swap-disk/dev/sdc1

一个设置了Lable,一个没设置。我们在添加/etc/fstab时,可是用LABLE名称,或者使用UUID来配置。 具体如上。

Disk /dev/sdb: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x65edb587

DeviceBoot      Start         End      Blocks  Id  System

/dev/sdb1               1         132    1060258+  82  Linux swap / Solaris

Disk /dev/sdc: 5368 MB, 5368709120 bytes

181 heads, 40 sectors/track, 1448 cylinders

Units = cylinders of 7240 * 512 = 3706880 bytes

Sector size (logical/physical): 512 bytes / 512bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

DeviceBoot      Start         End      Blocks  Id  System

/dev/sdc1               1         291    1053400   82  Linux swap / Solaris

注意: 使用blkid 查看类型已经变成了swap:

[root@rhce ~]# blkid

/dev/sda1: UUID="935f7fb2-2ef4-486f-ae4e-265eaf9f580f"TYPE="ext4"

/dev/sda2:UUID="43343402-9188-4cdc-9c79-0e36ab737517" TYPE="swap"

/dev/sda3:UUID="7e49fb2c-6fd8-461a-95d9-65d1f3994160" TYPE="ext4"

/dev/sdb1:UUID="bc913e6b-209a-49a7-b561-9b8c57294681" TYPE="swap"

/dev/sdc1:LABEL="swap-disk"UUID="799b4379-ca59-4508-ad04-2d18847b3fd9" TYPE="swap"

[root@rhce ~]#

这里的类型已经改变,我们可以尝试手工的启动swap:

[root@rhce ~]# swapon /dev/sdc1

[root@rhce ~]# swapon -s

Filename                                Type            Size    Used   Priority

/dev/sda2                               partition       3071992 0       -1

/dev/sdb1                               partition       1060248 0       -2

/dev/sdc1                               partition       1053392 0       -3

这里可以直接启用swap。

我们这里把/dev/dbb1和/dev/sdc1都添加/etc/fstab 文件,在重启一下看看。 添加内容如下:

UUID=bc913e6b-209a-49a7-b561-9b8c57294681 swap                    swap    defaults        0 0

LABEL=swap-disk        swap    swap    defaults        0 0

重启系统后查看:

[root@rhce ~]# swapon -s

Filename                                Type            Size    Used   Priority

/dev/sda2                               partition       3071992 0       -1

/dev/sdb1                               partition       1060248 0       -2

/dev/sdc1                               partition       1053392 0       -3

--对/dev/sdb1 进行测试

[root@rhce ~]# swapoff /dev/sdb1

[root@rhce ~]# swapon -s

Filename                                Type            Size    Used   Priority

/dev/sda2                               partition       3071992 0       -1

[root@rhce ~]# swapon /dev/sdb1

[root@rhce ~]# swapon -s

Filename                                Type            Size    Used   Priority

/dev/sda2                               partition       3071992 0       -1

/dev/sdb1                               partition       1060248 0       -2

2.5 SWAP 分区的删除

Swapoff 文件之后,删除掉对应的空间,在从/etc/fstab删除对应的记录即可。

Linux交换分区swap的更多相关文章

  1. Linux 交换分区swap

    Linux 交换分区swap 一.创建和启用swap交换区 如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存 ...

  2. linux 交换分区 swap

    linux swap分区用来保证内存过载时也可以使用,是在磁盘级别对内存的一次扩展,swap分区必须是一个单独的分区 创建过程: 1.用fdisk 命令新建分区,在创建过程中通过L命令和t命令来调整分 ...

  3. Linux_交换分区SWAP

    一.交换分区SWAP 1️⃣:交换分区SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用. 2️⃣:交换分区一般指定虚拟内存的大小 ...

  4. Linux设置交换分区swap

    参考: http://www.vpser.net/opt/vps-add-swap.html https://www.zntec.cn/archives/vps-swap.html http://yz ...

  5. Linux - 创建交换分区 swap

    购买的 1GB 内存的 Linux 小机器,在编译安装 PHP 的时候内存捉急,只好开启 swap 交换分区来增大内存. [root@VM_139_38_centos php-7.2.12]# cat ...

  6. linux(centos8): 临时关闭/永久关闭交换分区swap?

    一,为什么要关闭swap? 1,swap的用途? swap 分区就是交换分区,(windows平台叫虚拟内存) 在物理内存不够用时, 操作系统会从物理内存中把部分暂时不被使用的数据转移到交换分区, 从 ...

  7. 设置Linux交换分区

    Linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件.前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕.例如:安装redhat的时候,你可以 ...

  8. 物理内存不够用,临时增大Linux交换分区的方法

    当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么 操作的程序,这些被释放的空间被临时保存到Swap空间中,等到 ...

  9. linux交换分区调整

      SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用.它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且 ...

随机推荐

  1. surging API网关

    基于.NET CORE微服务框架 -谈谈surging API网关 1.前言 对于最近surging更新的API 网关大家也有所关注,也收到了不少反馈提出是否能介绍下Api网关,那么我们将在此篇文章中 ...

  2. 079 Word Search 单词搜索

    给定一个二维面板和一个单词,找出该单词是否存在于网格中.这个词可由顺序相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格.同一个单元格内的字母不允许被重复使用.例如,给定 二 ...

  3. webpack分开打包和合并打包的瘦身

    webpack.config.js 记录一下优化webpack的几个点: 1.     devtool: false,   //产品阶段不应该有devtool entry: { bundle : pa ...

  4. 常用API(包装类、System、Math、Arrays、大数据运算)

    常用API 今日内容介绍 u 基本类型包装类 u System u Math u Arrays u BigInteger u BigDecimal 第1章 基本类型包装类 大家回想下,在第二天我们学习 ...

  5. 在IDEA中编辑struts国际化properties文件

    在IDEA中编辑struts国际化properties文件 如果手工创建的web工程,struts的i18n属性文件,可以使用native2ascii工具转换(记得命令行的第二个文件名是要保存的文件名 ...

  6. 解决Chrome浏览器自动记录用户名和密码的黄色背景问题和该解决方法与tab切换至下一个input冲突的问题。

    哈哈哈,是不是标题很长呀,不逗你们了.其实这么长的标题主要就说了两件事: 第一件:解决Chrome浏览器自动记录用户名和密码的黄色背景问题. 第二件:输入完用户名后按下tab键切换至下一个输入密码in ...

  7. There is much opportunity for anyone willing to dedicate himself to his labors.

    There is much opportunity for anyone willing to dedicate himself to his labors.付出努力的人才有机会出人头地.

  8. Chrome Java插件过期

    企业应用软件中,基本都是基于某个版本的JDK进行开发的,更新跟不上Oracle更新的步伐,Chrome浏览器自动默认关闭了过期插件导致用Chrome无法打开应用软件. 解决办法如下:

  9. uvm_reg_predictor——寄存器模型(十一)

    保存寄存器的值 观察DUT寄存器值的变化. //---------------------------------------------------------------------------- ...

  10. Vue.js-this详解

    this this 指向并不是在函数定义的时候确定的,而是在调用的时候确定的.换句话说,函数的调用方式(直接调用.方法调用.new调用.bind.call.apply.箭头函数)决定了 this 指向 ...