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

docker详解介绍+基础操作 (二)info详解

1 docker相关信息和优化配置

1)查看docker版本详解

root@zz:~# docker version
Client: Docker Engine - CommunityVersion:           27.3.1API version:       1.47Go version:        go1.22.7Git commit:        ce12230Built:             Fri Sep 20 11:40:59 2024OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          27.3.1API version:      1.47 (minimum version 1.24)Go version:       go1.22.7Git commit:       41ca978Built:            Fri Sep 20 11:40:59 2024OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.7.22GitCommit:        7f7fdf5fed64eb6a7caf99b3e12efcf9d60e311crunc:Version:          1.1.14GitCommit:        v1.1.14-0-g2c9f560docker-init:Version:          0.19.0GitCommit:        de40ad0

2)docker 信息详解

root@zz:~# docker info
Client: Docker Engine - CommunityVersion:    27.3.1Context:    defaultDebug Mode: false     #client 端是否开启debugPlugins:buildx: Docker Buildx (Docker Inc.)Version:  v0.17.1Path:     /usr/libexec/docker/cli-plugins/docker-buildxcompose: Docker Compose (Docker Inc.)Version:  v2.29.7Path:     /usr/libexec/docker/cli-plugins/docker-composeServer:Containers: 0   #当前主机运行的容器总数Running: 0     #有几个容器是正在运行的Paused: 0      #有几个容器是暂停的Stopped: 0     #有几个容器是停止的Images: 0       #当前服务器镜像数Server Version: 27.3.1       #服务端版本Storage Driver: overlay2     #正在使用的存储引擎Backing Filesystem: extfs   #后端文件系统,即服务器的磁盘系统Supports d_type: true       #是否支持 d_typeUsing metacopy: false       #是否使用 metacopyNative Overlay Diff: true   #是否支持差异数据存储userxattr: false            #是否试用 userxattrLogging Driver: json-file    #日志类型,每个容器的标准输出以日志存放Cgroup Driver: systemd       #cgroup类型Cgroup Version: 2            #cgroup版本Plugins:                     #插件Volume: local               #卷Network: bridge host ipvlan macvlan null overlay  #overlay跨主机通信Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog #日志类型Swarm: inactive              #是否支持swarm 没有开启 类似k8s的工具Runtimes: io.containerd.runc.v2 runc   #已安装的容器运行时Default Runtime: runc        #默认容器运行时Init Binary: docker-init     #初始化容器的守护进程,即 pid 为1的进程containerd version: 7f7fdf5fed64eb6a7caf99b3e12efcf9d60e311c #版本runc version: v1.1.14-0-g2c9f560 #runc版本init version: de40ad0        #init版本Security Options:            #安全选项apparmor                    #安全模块seccomp                     #安全计算模块Profile: builtin       cgroupns                    #安全计算模块Kernel Version: 6.8.0-45-generic       #宿主机内核版本Operating System: Ubuntu 24.04.1 LTS   #宿主机os版本OSType: linux                          #宿主机os类型Architecture: x86_64                   #宿主机cpu架构CPUs: 2                                #宿主机cpu核数Total Memory: 1.638GiB                 #宿主机总内存Name: zz                               #宿主机主机名ID: d1c4671f-58d4-4832-90be-fe062f3c9b4e  #宿主机 IDDocker Root Dir: /var/lib/docker#宿主机docker数据的保存目录建议使用独立ssd磁盘保证性能和空间Debug Mode: false             # server 端 debug是否开启Experimental: false           #测试新功能和收集社区反馈,一般测试版会开启Insecure Registries:          #非安全的镜像仓库127.0.0.0/8Live Restore Enabled: false   #是否开启活动重启(重启docker-daemo 不关闭容器)WARNING: bridge-nf-call-iptables is disabled #系统警告
WARNING: bridge-nf-call-ip6tables is disabled #系统警告

①metacopy使用场景
处理大量小文件:在处理大量小文件时,metacopy 可以显著减少文件系统的 I/O 操作,提高性能。
频繁的文件创建和删除:在需要频繁创建和删除文件的场景中,metacopy 可以减少文件系统的开销。
容器镜像构建:在构建容器镜像时,如果涉及到大量文件的复制和修改,metacopy 可以加速这一过程。
启用 metacopy
metacopy 特性默认是禁用的,需要在启动 Docker 守护进程时通过配置文件或命令行参数来启用

通过配置文件启用
编辑 Docker 的配置文件(通常是 /etc/docker/daemon.json):

{"storage-driver": "overlay2","storage-opts": ["overlay2.metacopy=on"]
}


重启 Docker 服务:
 

sudo systemctl restart docker


通过命令行启用
在启动 Docker 守护进程时,可以通过命令行参数启用 metacopy:

sudo dockerd --storage-driver overlay2 --storage-opt overlay2.metacopy=on


注意事项
兼容性:metacopy 特性依赖于底层文件系统(如 ext4、XFS)的支持。确保你的文件系统支持 metacopy。
性能影响:虽然 metacopy 在某些场景下可以提高性能,但在其他场景下可能会带来额外的开销。建议在实际环境中进行测试,以确定是否适合启用该特性。
数据一致性:在某些情况下,metacopy 可能会影响文件系统的数据一致性。确保在启用该特性前了解其潜在的风险。

②d_type

文件系统支持 d_type 的常见情况
ext4:默认支持 d_type。
XFS:默认支持 d_type。
btrfs:默认支持 d_type。
tmpfs:默认支持 d_type。

检查 Docker 是否使用 d_type
你可以通过查看 Docker 的日志来确认是否启用了 d_type 支持:

sudo journalctl -u docker | grep d_type


d_type 支持是 Docker 中 overlay2 存储驱动的一个重要特性,可以显著提高文件系统操作的性能和可靠性。确保你的文件系统支持 d_type,并在启动 Docker 时启用该特性,可以进一步优化 Docker 的性能。如果你的文件系统不支持 d_type,Docker 会自动回退到不使用 d_type 的模式,但性能可能会受到影响。

③ userxattr 选项的作用
启用 userxattr (userxattr: true):
允许在文件和目录上设置和读取用户扩展属性。
这对于某些应用程序和工具(如 SELinux、AppArmor 和其他安全相关工具)可能非常重要,因为它们依赖于这些扩展属性来实现细粒度的安全控制。
禁用 userxattr (userxattr: false):
禁止在文件和目录上设置和读取用户扩展属性。
这可以减少文件系统的开销,提高性能,特别是在不需要这些扩展属性的情况下。
配置 userxattr 选项
通过配置文件启用或禁用 userxattr
编辑 Docker 的配置文件(通常是 /etc/docker/daemon.json):

{"storage-driver": "overlay2","storage-opts": ["overlay2.userxattr=false"]
}


重启 Docker 服务:

sudo systemctl restart docker


通过命令行启用或禁用 userxattr
在启动 Docker 守护进程时,可以通过命令行参数启用或禁用 userxattr:

sudo dockerd --storage-driver overlay2 --storage-opt overlay2.userxattr=false

④cgroupfs vs systemd
cgroupfs:
描述: cgroupfs 是 Docker 的默认 cgroup 驱动程序。
优点: 简单易用,不需要额外的依赖。
缺点: 可能与系统的其他部分(如 systemd)存在冲突,特别是在较新的系统中。
systemd:
描述: systemd 是一个系统和服务管理器,广泛用于现代 Linux 发行版。systemd 也支持 cgroup 管理。
优点: 更好的系统集成,与 systemd 服务管理器无缝配合,提供更细粒度的资源管理和监控。
缺点: 配置稍微复杂一些,需要 systemd 支持。
如何将 Docker 配置为使用 systemd 作为 cgroup 驱动程序
编辑 Docker 配置文件:
打开 Docker 的配置文件(通常是 /etc/docker/daemon.json)。
添加或修改 cgroup-driver 配置项,将其设置为 systemd。

{"exec-opts": ["native.cgroupdriver=systemd"]
}

重启 Docker 服务:
保存配置文件后,重启 Docker 服务以使更改生效。
 


sudo systemctl restart docker

⑤AppArmor: 用于限制程序的文件访问、网络连接和其他系统调用。
Seccomp: 用于限制进程可以执行的系统调用,减少攻击面。

cgroupns: 用于将 cgroups 隔离到不同的命名空间中,提高容器之间的资源隔离性。  

⑥常见警告及解决办法

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
vim /etc/sysctl.conf
添加以下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

最后再执行

sysctl -p

sudo systemctl restart docker

若出现 sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: No such file or directory

则执行 sudo modprobe br_netfilter

再执行 

sysctl -p

sudo systemctl restart docker

即可

方法二 用ipvs代替

当看到 `WARNING: bridge-nf-call-iptables is disabled` 警告时,确实可以考虑使用 `ipvs` 作为替代方案,尤其是在需要高性能负载均衡和网络管理的场景中。`ipvs`(IP Virtual Server)是一个内核模块,用于实现高性能的负载均衡和网络地址转换(NAT)。

什么是 `ipvs`?

`ipvs` 是 Linux 内核的一个模块,用于实现第四层(传输层)的负载均衡。它可以在内核态处理大量的网络流量,提供比 `iptables` 更高效的负载均衡和转发能力。`ipvs` 通常用于高性能的负载均衡器,如 `HAProxy` 和 `Kubernetes` 的 `kube-proxy` 组件。

 为什么使用 `ipvs`?

1. **高性能**: `ipvs` 在内核态处理网络流量,性能通常优于 `iptables`。
2. **可扩展性**: `ipvs` 支持多种负载均衡算法,可以更好地处理大规模的网络流量。
3. **灵活性**: `ipvs` 提供了丰富的配置选项,可以满足不同场景的需求。

如何启用 `ipvs`?

1. 安装 `ipvs` 模块

首先,确保你的系统已经安装了 `ipvs` 模块。你可以使用以下命令来加载 `ipvs` 模块:


sudo modprobe ip_vs
sudo modprobe ip_vs_rr
sudo modprobe ip_vs_wrr
sudo modprobe ip_vs_sh
 

这些模块分别对应 `ipvs` 的核心功能和不同的负载均衡算法(轮询、加权轮询、最少连接数)。

 2. 配置 `ipvs` 模块

你可以使用 `ipvsadm` 工具来配置 `ipvs`。首先,安装 `ipvsadm`:


sudo apt-get install ipvsadm  # Debian/Ubuntu
sudo yum install ipvsadm      # CentOS/RHEL
 

 3. 配置 `ipvs` 规则

使用 `ipvsadm` 添加和管理 `ipvs` 规则。例如,创建一个虚拟服务器并将流量转发到两个真实服务器:


sudo ipvsadm -A -t 192.168.1.100:80 -s rr
sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g
sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -g
```

- `-A`:添加虚拟服务器
- `-t`:指定虚拟服务器的 IP 和端口
- `-s`:指定负载均衡算法(`rr` 表示轮询)
- `-a`:添加真实服务器
- `-r`:指定真实服务器的 IP 和端口
- `-g`:使用直接路由模式

4. 验证配置

你可以使用以下命令查看 `ipvs` 的配置:


sudo ipvsadm -L -n
 

在 Docker 中使用 `ipvs`

如果你在使用 Docker 并希望使用 `ipvs`,可以考虑以下几点:

1. **Kubernetes**: 如果你在使用 Kubernetes,可以配置 `kube-proxy` 使用 `ipvs` 模式。编辑 `kube-proxy` 的配置文件(通常是 `/etc/kubernetes/manifests/kube-proxy.yaml`),添加或修改以下内容:

spec:containers:- name: kube-proxyimage: k8s.gcr.io/kube-proxy:v1.21.0command:- /usr/local/bin/kube-proxy- --config=/var/lib/kube-proxy/config.conf- --iptables-sync-period=30s- --ipvs-sync-period=30s- --feature-gates=SupportIPVSProxyMode=true- --proxy-mode=ipvs

2. **Docker Swarm**: Docker Swarm 本身没有直接支持 `ipvs` 的选项,但你可以通过自定义网络配置和使用 `ipvs` 负载均衡器来实现类似的效果。

总结

`WARNING: bridge-nf-call-iptables is disabled` 警告表示 Docker 的网桥无法调用 `iptables` 规则,这可能影响网络的安全性和功能。虽然你可以通过启用 `bridge-nf-call-iptables` 来解决这个问题,但如果你需要更高性能的负载均衡和网络管理,可以考虑使用 `ipvs` 作为替代方案。`ipvs` 提供了更高的性能和更丰富的配置选项,适用于高性能的负载均衡场景。

Docker之WARNING: IPv4 forwarding is disabled. Networking will not work

配置转发

vim /etc/sysctl.conf
#配置转发
net.ipv4.ip_forward=1
#重启服务,让配置生效
systemctl restart network
#查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward

检查容器是否正常访问网络

#重启docker服务
service docker restart
#查看运行过的容器
docker ps -a
#启动gitlab 容器
docker start gitblab2
#进入gitlab容器
docker attach gitlab2
#获取百度信息
curl baidu.com

WARNING: No swap limit support

系统警告信息 (没有开启 swap 资源限制 )

vim /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_ release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="net.ifnames=0 swapaccount=1"                 #修改此行swapaccount=1update-grub
reboot

相关文章:

docker详解介绍+基础操作 (二)info详解

1 docker相关信息和优化配置 1)查看docker版本详解 rootzz:~# docker version Client: Docker Engine - CommunityVersion: 27.3.1API version: 1.47Go version: go1.22.7Git commit: ce12230Built: Fri Sep 20 11:40:…...

C0023.在Clion中创建控件,对控件进行提升为自定义控件的步骤

新建Ui界面文件 修改新生成的ui文件头文件 关闭之前打开的ui文件,如上图Qt Designer中打开的,然后修改新生成的ui文件对应的头文件,改成自己需要的控件类即可。 提升控件为自定义类 将如下头文件中的类名和头文件名输入到提升窗口中&#…...

探索 C# 常用第三方库与框架

在 C# 开发中,第三方库和框架极大地提高了开发效率和代码质量。通过这些库,开发者可以快速处理 JSON 数据、简化对象映射、记录日志、以及高效地与数据库交互。本文将介绍四个常用的 C# 第三方库:Newtonsoft.Json、AutoMapper、NLog/Serilog …...

NodeJS GRPC简单的例子

1. 定义 .proto 文件 首先,创建一个 .proto 文件,定义服务和消息: syntax "proto3";package helloworld;service Greeter {rpc SayHello (HelloRequest) returns (HelloReply) {}rpc SayHelloAgain (HelloRequest) returns (Hel…...

无人机之三维航迹规划篇

一、基本原理 飞行环境建模:在三维航迹规划中,首先需要对飞行环境进行建模。这包括对地形、障碍物、气象等因素进行准确的测量和分析,以获得可行的飞行路径。 飞行任务需求分析:根据无人机的任务需求,确定航迹规划的…...

风格迁移-StyTr 2 : Image Style Transfer with Transformers

风格迁移-StyTr 2 : Image Style Transfer with Transformers 论文链接:Image Style Transfer with Transformers 源码链接:StyTR-2 文章目录 风格迁移-StyTr 2 : Image Style Transfer with TransformersStyTR架构图图像内容编码器内容感知位置编码&…...

上百种【基于YOLOv8/v10/v11的目标检测系统】目录(python+pyside6界面+系统源码+可训练的数据集+也完成的训练模型)

待更新(持续更新),早关注,不迷路............................................................................... 目标检测系统操作说明【用户使用指南】(pythonpyside6界面系统源码可训练的数据集也完成的训练模型&#xff…...

记录搜罗到的Matlab 对散点进行椭圆拟合

需要基于一些散点拟合椭圆估计并计算出椭圆的参数和周长,搜罗到直接上代码 (1)有用的椭圆拟合及参数计算函数 function W fitellipse(x,y) % 构造矩阵 D [x.*x, x.*y, y.*y, x, y,ones(size(x))]; S D*D; G zeros(6); G(1,3) 2; G(3,1)…...

分享我最近使用《柬埔寨语翻译通》App的体验,不会说高棉语也能去柬埔寨旅游,畅通无阻!

最近,我尝试了一款名为《柬埔寨语翻译通》的应用程序,它旨在帮助用户进行中文和高棉语之间的翻译。以下是我使用这款应用的一些体验和感受。 双向翻译功能:我首先测试了它的翻译功能。《柬埔寨语翻译通》能够将中文翻译成高棉语,反…...

文本语义检索系统的搭建过程,涵盖了召回、排序以及Milvus召回系统、短视频推荐等相关内容

大家好,我是微学AI,今天给大家介绍一下本文详细介绍了文本语义检索系统的搭建过程,涵盖了召回、排序以及Milvus召回系统的相关内容。通过使用PyTorch框架,我们提供了样例代码,以帮助读者更好地理解和实践。该系统具有广…...

redis在项目中运用(基础)

mysql学完命令之后&#xff0c;学过jdbc。 redis也要使用Java连接redis数据库 1.Jedis 2.RedisTemplate[重点] 1、Jedis【了解】 jedis是redis的java版本的客户端实现&#xff0c;jedis中提供了针对redis命令的操作 1.1导入jar文件 Maven方式 <dependency><group…...

libaom 源码分析系列:svc_encoder_rtc.cc 文件

源码函数关系 文件功能:实现 AV1 svc 编码的 RTC 功能 demo文件位置:libaom/examples/svc_encoder_rtc.cc文件内函数关系图: 结构体 AppInput:svc_encoder_rtc.cc 所属 demo 的结构体,作为从命令行接受参数的结构体;AvxVideoWriter:输出视频写入结构体;aom_codec_enc_c…...

MySQL备份和还原,用mysqldump、mysql和source命令来完成

MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。 mysqldump命令使用方法 1运行 | cmd |利用 cd C:\Program Files\MySQL\MySQL Server 9.0\bin”命令进入bin文件夹 2输入命令 mysqldump -h127.0.0.1 -P3306 -uroot -pQWERTY zssjkcf>d:123.sql mysqldump -…...

MySQL Server、HeidiSQL(MySQL 数据库工具)

目录 一、MySQL Server &#xff08;一&#xff09;官网下载 &#xff08;二&#xff09;安装与配置 二、HeidiSQL软件 &#xff08;一&#xff09;安装 1. 官网下载 2. 打开 3. 使用 &#xff08;1&#xff09;打开服务 &#xff08;2&#xff09;新增数据库 ​&#xff…...

矩阵相关算法

矩阵旋转90度 给定一个 n n 的二维矩阵 matrix 表示一个图像&#xff0c;请你将图像顺时针旋转 90 度。 #include <iostream> #include <vector>using namespace std;void rotate(vector<vector<int>>& matrix) {int n matrix.size();// 第一步…...

微信小程序-封装通用模块

文章目录 微信小程序-封装通用模块封装toast和modal封装storage封装网络请求 微信小程序-封装通用模块 封装toast和modal /** 提示消息框 */ function toast({title "数据加载中",icon "none",duration 2000,mask true, }) {wx.showToast({title,ico…...

Modnet 人像抠图(论文复现)

Modnet 人像抠图&#xff08;论文复现&#xff09; 本文所涉及所有资源均在传知代码平台可获取 文章目录 Modnet 人像抠图&#xff08;论文复现&#xff09;论文概述论文方法复现WebUI部署 论文概述 人像抠图(Portrait matting)旨在预测一个精确的 alpha 抠图&#xff0c;可以用…...

利用session机制造测试账号,无需前端也可以测试后端接口

适用场景&#xff1a;我们在测试的时候经常会遇到前端还没有开发完毕&#xff0c;后端已经结束开发了&#xff0c;但是后端的有些接口是需要特定的账号身份调用才会生效&#xff0c;此时因为前端未开发完毕&#xff0c;所以我们不能通过web页面进行登录&#xff0c;那么如何解决…...

JAVA_18

JAVA_18 1.IO流2.JAVA_IO流3.标准输入输出4.对象序列化5.字符编码与字符集6.异常处理和资源关闭 1.IO流 IO流(Input/Output stream)是用于在程序和外部设备(如文件、网络等)之间进行数据传输的机制。它是Java中处理输入和输出操作的一种抽象方式。概念: 输入流(Input Stream):…...

Linux升级openssl版本

Linux升级openssl版本 服务器编译依赖库检查 $ yum -y install gcc gcc-c make libtool zlib zlib-devel版本检测 $ openssl version OpenSSL 1.0.1e-fips 11 Feb 2013 $ ssh -V OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013下载openssl 地址&#xff1a;https://www.o…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...