Prometheus Node_exporter 之 Memory Detail Vmstat
Memory Detail Vmstat
查看/proc/vmstat 文件的内容
1. Memory Pages In / Out
type: Graph
Unit: short
Label: Pages
Pagesin - 从启动到现在读入的内存页数的速率(5分钟内) /proc/vmstat pgpgin
metrics:
irate(node_vmstat_pgpgin{instance=~"$node:$port",job=~"$job"}[5m])
Pagesout - 从启动到现在换出的内存页数的速率(5分钟内) /proc/vmstat pgpgout
metrics:
irate(node_vmstat_pgpgout{instance=~"$node:$port",job=~"$job"}[5m])
2. Memory Pages Swap In / Out
type: Graph
Unit: short
Label: Pages
Pswpin - 数据从磁盘交换区装入内存的速率(5分钟内) /proc/vmstat pswpin
metrics:
irate(node_vmstat_pswpin{instance=~"$node:$port",job=~"$job"}[5m])
Pswpout - 数据从内存转储到磁盘交换区的速率(5分钟内) /proc/vmstat pswpout
metrics:
irate(node_vmstat_pswpout{instance=~"$node:$port",job=~"$job"}[5m])
3. Memory Page Operations
type: Graph
Unit: short
Label: Pages
Pgdeactivate - 激活的平均页数(5分钟内) /proc/vmstat pgdeactivate
metrics:
irate(node_vmstat_pgdeactivate{instance=~"$node:$port",job=~"$job"}[5m])
Pgfree - 释放的平均页数(5分钟内) /proc/vmstat pgfree
metrics:
irate(node_vmstat_pgfree{instance=~"$node:$port",job=~"$job"}[5m])
Pgactivate - 未激活的平均页数(5分钟内) /proc/vmstat pgactivate
metrics:
irate(node_vmstat_pgactivate{instance=~"$node:$port",job=~"$job"}[5m])
4. Memory Page Faults
type: Graph
Unit: short
Label: Faults
Pgfault - 一级页面和二级页面的平均错误数(5分钟内) /proc/vmstat pgfault
metrics:
irate(node_vmstat_pgfault{instance=~"$node:$port",job=~"$job"}[5m])
Pgmajfault - 一级页面的平均错误数(5分钟内) /proc/vmstat pgmajfault
metrics:
irate(node_vmstat_pgmajfault{instance=~"$node:$port",job=~"$job"}[5m])
Pgminfault - 二级页面的平均错误数(5分钟内)
metrics:
irate(node_vmstat_pgfault{instance=~"$node:$port",job=~"$job"}[5m]) - irate(node_vmstat_pgmajfault{instance=~"$node:$port",job=~"$job"}[5m])
5. Memory Pages Reclaimed
type: Graph
Unit: short
Label: Pages
Kswapd_inodesteal - 由 kswapd 回收用于其它目的的平均页面数(5分钟内) /proc/vmstat kswapd_inodesteal
metrics:
irate(node_vmstat_kswapd_inodesteal{instance=~"$node:$port",job=~"$job"}[5m])
Pgindesteal - 由 inode 释放回收的平均页面数(5分钟内) /proc/vmstat pgindesteal
metrics:
irate(node_vmstat_pginodesteal{instance=~"$node:$port",job=~"$job"}[5m])
6. Memory Calls Reclaimed
type: Graph
Unit: short
Label: Cells
Pageoutrun - 由 kswapd调用来回收的平均页面数(5分钟内) /proc/vmstatpageoutrun
metrics:
irate(node_vmstat_pageoutrun{instance=~"$node:$port",job=~"$job"}[5m])
Allocstall - 请求直接回收的平均页面数(5分钟内) /proc/vmstat allocstall
metrics:
irate(node_vmstat_allocstall{instance=~"$node:$port",job=~"$job"}[5m])
Zone_reclaim_failed - 内存域回收失败的平均页面数(5分钟内) /proc/vmstat zone_reclaim_failed
metrics:
irate(node_vmstat_zone_reclaim_failed{instance=~"$node:$port",job=~"$job"}[5m])
7. Memory Page Rotate /proc/vmstat pgrotated
type: Graph
Unit: short
Label: Pages
Pgrotated - 轮换的平均页面数(5分钟内)
metrics:
irate(node_vmstat_pgrotated{instance=~"$node:$port",job=~"$job"}[5m])
8. Memory Page Drop
type: Graph
Unit: short
Label: Cells
Drop_pagecache - 调用释放缓存的平均页面数(5分钟内) /proc/vmstat drop_pagecache
metrics:
node_vmstat_drop_pagecache{instance=~"$node:$port",job=~"$job"}
Drop_slab - 调用释放 slab 缓存的平均页面数(5分钟内) /proc/vmstat drop_slab
metrics:
node_vmstat_drop_slab{instance=~"$node:$port",job=~"$job"}
9. Memory Scan Slab /proc/vmstat slabs_scanned
type: Graph
Unit: short
Slabs_scanned - 被扫描的 Slab 页面的平均页面数(5分钟内)
metrics:
irate(node_vmstat_slabs_scanned{instance=~"$node:$port",job=~"$job"}[5m])
10. Memory Unevictable Pages
type: Graph
Unit: short
Label: Pages
Unevictable_pgs_cleared - Unevictable pages cleared
metrics:
irate(node_vmstat_unevictable_pgs_cleared{instance=~"$node:$port",job=~"$job"}[5m])
Unevictable_pgs_culled - Unevictable pages culled
metrics:
irate(node_vmstat_unevictable_pgs_culled{instance=~"$node:$port",job=~"$job"}[5m])
Unevictable_pgs_mlocked - Unevictable pages mlocked
metrics:
irate(node_vmstat_unevictable_pgs_mlocked{instance=~"$node:$port",job=~"$job"}[5m])
Unevictable_pgs_munlocked - Unevictable pages munlocked
metrics:
irate(node_vmstat_unevictable_pgs_munlocked{instance=~"$node:$port",job=~"$job"}[5m])
Unevictable_pgs_rescued- Unevictable pages rescued
metrics:
irate(node_vmstat_unevictable_pgs_rescued{instance=~"$node:$port",job=~"$job"}[5m])
Unevictable_pgs_scanned - Unevictable pages scanned
metrics:
irate(node_vmstat_unevictable_pgs_scanned{instance=~"$node:$port",job=~"$job"}[5m])
unevictable_pgs_stranded - Unevictable pages stranded
metrics:
irate(node_vmstat_unevictable_pgs_stranded{instance=~"$node:$port",job=~"$job"}[5m])
11. Memory Page Allocation
type: Graph
Unit: short
Label: Pages
Pgalloc_dma - DMA 存储区分配的平均页数(5分钟内) /proc/vmstat pgalloc_dma
metrics:
irate(node_vmstat_pgalloc_dma{instance=~"$node:$port",job=~"$job"}[5m])
Pgalloc_dma32 - DMA32 存储区分配的平均页数(5分钟内) /proc/vmstat pgalloc_dma32
metrics:
irate(node_vmstat_pgalloc_dma32{instance=~"$node:$port",job=~"$job"}[5m])
Pgalloc_movable - movable 存储区分配的平均页数(5分钟内) /proc/vmstat pgalloc_movable
metrics:
irate(node_vmstat_pgalloc_movable{instance=~"$node:$port",job=~"$job"}[5m])
Pgalloc_normal - 普通存储区分配的平均页数(5分钟内) /proc/vmstat pgalloc_normal
metrics:
irate(node_vmstat_pgalloc_normal{instance=~"$node:$port",job=~"$job"}[5m])
12. Memory Page Refill
type: Graph
Unit: short
Label: Pages
Pgrefill_dma - DMA 再填充的平均页数(5分钟内) /proc/vmstat pgrefill_dma
metrics:
irate(node_vmstat_pgrefill_dma{instance=~"$node:$port",job=~"$job"}[5m])
Pgrefill_dma32 - DMA32 存储区再填充的平均页数(5分钟内) /proc/vmstat pgrefill_dma32
metrics:
irate(node_vmstat_pgrefill_dma32{instance=~"$node:$port",job=~"$job"}[5m])
Pgrefill_movable - movable 存储区再填充的平均页数(5分钟内) /proc/vmstat pgrefill_movable
metrics:
irate(node_vmstat_pgrefill_movable{instance=~"$node:$port",job=~"$job"}[5m])
Pgrefill_normal - 普通存储区再填充的平均页数(5分钟内) /proc/vmstat pgrefill_normal
metrics:
irate(node_vmstat_pgrefill_normal{instance=~"$node:$port",job=~"$job"}[5m])
13. Memory Page Steal Direct
type: Graph
Unit: short
Label: Pages
Pgsteal_direct_dma - DMA 存储区被直接回收用于其它目的的平均页面数(5分钟内) /proc/vmstat pgsteal_direct_dma
metrics:
irate(node_vmstat_pgsteal_direct_dma{instance=~"$node:$port",job=~"$job"}[5m])
Pgsteal_direct_dma32 - DMA32 存储区被直接回收用于其它目的的平均页面数(5分钟内) /proc/vmstat pgsteal_direct_dma32
metrics:
irate(node_vmstat_pgsteal_direct_dma32{instance=~"$node:$port",job=~"$job"}[5m])
Pgsteal_direct_movable - movable 存储区被直接回收用于其它目的的平均页面数(5分钟内) /proc/vmstat pgsteal_direct_movable
metrics:
irate(node_vmstat_pgsteal_direct_movable{instance=~"$node:$port",job=~"$job"}[5m])
Pgsteal_direct_normal - 普通存储区被直接回收用于其它目的的平均页面数(5分钟内) /proc/vmstat pgsteal_direct_normal
metrics:
irate(node_vmstat_pgsteal_direct_normal{instance=~"$node:$port",job=~"$job"}[5m])
14. Memory Page Steal Kswapd
type: Graph
Unit: short
Label: Pages
Pgsteal_kswapd_dma - kswapd 后台进程回收 DMA 存储区用于其它目的的平均页面数(5分钟内) /proc/vmstat pgsteal_kswapd_dma
metrics:
irate(node_vmstat_pgsteal_kswapd_dma{instance=~"$node:$port",job=~"$job"}[5m])
Pgsteal_kswapd_dma32 - kswapd 后台进程回收 DMA32 存储区用于其它目的的平均页面数(5分钟内) /proc/vmstat pgsteal_kswapd_dma32
metrics:
irate(node_vmstat_pgsteal_kswapd_dma32{instance=~"$node:$port",job=~"$job"}[5m])
Pgsteal_kswapd_movable - kswapd 后台进程回收 movable 存储区用于其它目的的平均页面数(5分钟内 /proc/vmstat pgsteal_kswapd_movable
metrics:
irate(node_vmstat_pgsteal_kswapd_movable{instance=~"$node:$port",job=~"$job"}[5m])
Pgsteal_kswapd_normal - swapd后台进程回收普通存储区用于其它目的的平均页面数(5分钟内 /proc/vmstat pgsteal_kswapd_normal
metrics:
irate(node_vmstat_pgsteal_kswapd_normal{instance=~"$node:$port",job=~"$job"}[5m])
15. Memory Scan Direct
type: Graph
Unit: short
Label: Pages
Pgscan_direct_dma - DMA 存储区被直接回收的平均页面数(5分钟内) /proc/vmstat pgscan_direct_dma
metrics:
irate(node_vmstat_pgscan_direct_dma{instance=~"$node:$port",job=~"$job"}[5m])
Pgscan_direct_dma32 - DMA32 存储区被直接回收的平均页面数(5分钟内) /proc/vmstat pgscan_direct_dma32
metrics:
irate(node_vmstat_pgscan_direct_dma32{instance=~"$node:$port",job=~"$job"}[5m])
Pgscan_direct_movable - movable 存储区被直接回收的平均页面数(5分钟内) /proc/vmstat pgscan_direct_movable
metrics:
irate(node_vmstat_pgscan_direct_movable{instance=~"$node:$port",job=~"$job"}[5m])
Pgscan_direct_normal - 普通存储区被直接回收的平均页面数(5分钟内) /proc/vmstat pgscan_direct_normal
metrics:
irate(node_vmstat_pgscan_direct_normal{instance=~"$node:$port",job=~"$job"}[5m])
Pgscan_direct_throttle - throttle 存储区被直接回收的平均页面数(5分钟内) /proc/vmstat pgscan_direct_throttle
metrics:
irate(node_vmstat_pgscan_direct_throttle{instance=~"$node:$port",job=~"$job"}[5m])
16. Memory Scan Kswapd
type: Graph
Unit: short
Label: Pages
Pgscan_kswapd_dma - kswapd 后台进程扫描的 DMA 存储区平均页面数(5分钟内) /proc/vmstat pgscan_kswapd_dma
metrics:
irate(node_vmstat_pgscan_kswapd_dma{instance=~"$node:$port",job=~"$job"}[5m])
Pgscan_kswapd_dma32 - kswapd 后台进程扫描的 DMA32 存储区平均页面数(5分钟内) /proc/vmstat pgscan_kswapd_dma32
metrics:
irate(node_vmstat_pgscan_kswapd_dma32{instance=~"$node:$port",job=~"$job"}[5m])
Pgscan_kswapd_movable - kswapd 后台进程扫描的 movable 存储区平均页面数(5分钟内) /proc/vmstat pgscan_kswapd_movable
metrics:
irate(node_vmstat_pgscan_kswapd_movable{instance=~"$node:$port",job=~"$job"}[5m])
Pgscan_kswapd_normal - kswapd 后台进程扫描的普通存储区平均页面数(5分钟内) /proc/vmstat pgscan_kswapd_normal
metrics:
irate(node_vmstat_pgscan_kswapd_normal{instance=~"$node:$port",job=~"$job"}[5m])
17. Memory Page Compact
type: Graph
Unit: short
Label: Pages
Compact_free_scanned - 扫描由压缩守护程序释放的页面 /proc/vmstat compact_free_scanned
metrics:
irate(node_vmstat_compact_free_scanned{instance=~"$node:$port",job=~"$job"}[5m])
Compact_isolated - 用于内存压缩隔离的页面 /proc/vmstat compact_isolated
metrics:
irate(node_vmstat_compact_isolated{instance=~"$node:$port",job=~"$job"}[5m])
Compact_migrate_scanned - 通过内存压缩守护程序扫描以进行迁移的页面 /proc/vmstat compact_migrate_scanned
metrics:
irate(node_vmstat_compact_migrate_scanned{instance=~"$node:$port",job=~"$job"}[5m])
18. Memory Compactions 内存紧缩
type: Graph
Unit: short
Label: Compactions
Compact_fail - 高阶分配的内存碎片整理失败的页面数(5分钟内) /proc/vmstat compact_fail
metrics:
irate(node_vmstat_compact_fail{instance=~"$node:$port",job=~"$job"}[5m])
Compact_stall - 开始执行内存碎片失败的页面数(5分钟内) /proc/vmstat compact_stall
metrics:
irate(node_vmstat_compact_stall{instance=~"$node:$port",job=~"$job"}[5m])
Compact_sucess - 高阶分配的内存碎片整理成功的页面数(5分钟内)
metrics:
irate(node_vmstat_compact_success{instance=~"$node:$port",job=~"$job"}[5m])
19. Memory Kswapd Watermark
type: Graph
Unit: short
Label: Counter
Kswapd_high_wmark_hit_quickly - 剩余内存达到 high 的水位线的时间 /proc/vmstat kswapd_high_wmark_hit_quickly
metrics:
node_vmstat_kswapd_high_wmark_hit_quickly{instance=~"$node:$port",job=~"$job"}
Kswapd_low_wmark_hit_quickly - - 剩余内存达到 low 的水位线的时间 /proc/vmstat kswapd_low_wmark_hit_quickly
metrics:
node_vmstat_kswapd_low_wmark_hit_quickly{instance=~"$node:$port",job=~"$job"}
20. Memory Buddy Alloc
type: Graph
Unit: short
Label: Allocations
Htlb_buddy_alloc_fail - buddy 给 hugetlb 分配失败的次数 /proc/vmstat htlb_buddy_alloc_fail
metrics:
node_vmstat_htlb_buddy_alloc_fail{instance=~"$node:$port",job=~"$job"}
Htlb_buddy_alloc_success - buddy 给 hugetlb 分配成功的次数 /proc/vmstat htlb_buddy_alloc_success
metrics:
node_vmstat_htlb_buddy_alloc_success{instance=~"$node:$port",job=~"$job"}
21. Memory Numa Allocations
type: Graph
Unit: short
Label: Allocations
Numa_foreign - 计划使用其他节点内存但是却使用本地内存次数 /proc/vmstat numa_foreign
metrics:
irate(node_vmstat_numa_foreign{instance=~"$node:$port",job=~"$job"}[5m])
Numa_hit - 使用本节点内存次数 /proc/vmstat numa_hit
metrics:
irate(node_vmstat_numa_hit{instance=~"$node:$port",job=~"$job"}[5m])
Numa_interleave - 交叉分配使用的内存中使用本节点的内存次数 /proc/vmstat numa_interleave
metrics:
irate(node_vmstat_numa_interleave{instance=~"$node:$port",job=~"$job"}[5m])
Numa_local - 在本节点运行的程序使用本节点内存次数 /proc/vmstat numa_local
metrics:
irate(node_vmstat_numa_local{instance=~"$node:$port",job=~"$job"}[5m])
Numa_miss - 计划使用本节点内存而被调度到其他节点次数 /proc/vmstat numa_miss
metrics:
irate(node_vmstat_numa_miss{instance=~"$node:$port",job=~"$job"}[5m])
Numa_other - 在其他节点运行的程序使用本节点内存次数 /proc/vmstat numa_other
metrics:
irate(node_vmstat_numa_other{instance=~"$node:$port",job=~"$job"}[5m])
22. Memory Numa Page Migrations
type: Graph
Unit: short
Label: Pages
Numa_pages_migrated - NUMA page 数 /proc/vmstat numa_pages_migrated
metrics:
irate(node_vmstat_numa_pages_migrated{instance=~"$node:$port",job=~"$job"}[5m])
Pgmigrate_fail - 迁移失败的页面数 /proc/vmstat pgmigrate_fail
metrics:
irate(node_vmstat_pgmigrate_fail{instance=~"$node:$port",job=~"$job"}[5m])
Pgmigrate_success - 成功迁移的页面数 /proc/vmstat pgmigrate_success
metrics:
irate(node_vmstat_pgmigrate_success{instance=~"$node:$port",job=~"$job"}[5m])
23. Memory Numa Hints
type: Graph
Unit: short
Label: Hints
Numa_hint_faults - NUMA hint faults trapped
metrics:
irate(node_vmstat_numa_hint_faults{instance=~"$node:$port",job=~"$job"}[5m])
Numa_hint_faults_local - Hinting faults to local nodes
metrics:
irate(node_vmstat_numa_hint_faults_local{instance=~"$node:$port",job=~"$job"}[5m])
24. Memory Numa Table Updates
type: Graph
Unit: short
Label: Updates
Numa_pte_updates - NUMA page table entry updates
metrics:
irate(node_vmstat_numa_pte_updates{instance=~"$node:$port",job=~"$job"}[5m])
Numa_huge_pte_updates - NUMA huge page table entry updates
metrics:
irate(node_vmstat_numa_huge_pte_updates{instance=~"$node:$port",job=~"$job"}[5m])
25. Memory THP Splits
type: Graph
Unit: short
Label: Splits
Thp_split - 大型页面分割成多个常规页面 /proc/vmstat thp_split
metrics:
irate(node_vmstat_thp_split{instance=~"$node:$port",job=~"$job"}[5m])
26. Memory Workingset
type: Graph
Unit: short
Label: Counter
Workingset_activate - Page activations to form the working set
metrics:
irate(node_vmstat_workingset_activate{instance=~"$node:$port",job=~"$job"}[5m])
Workingset_nodereclaim - NUMA node working set page reclaims
metrics:
irate(node_vmstat_workingset_nodereclaim{instance=~"$node:$port",job=~"$job"}[5m])
Workingset_refault - Refaults of previously evicted pages
metrics:
irate(node_vmstat_workingset_refault{instance=~"$node:$port",job=~"$job"}[5m])
27. Memory THP Allocations
type: Graph
Unit: short
Label: Allocations
Thp_collapse_alloc - Transparent huge page collapse allocations
metrics:
irate(node_vmstat_thp_collapse_alloc{instance=~"$node:$port",job=~"$job"}[5m])
Thp_collapse_alloc_failed - Transparent huge page collapse allocation failures
metrics:
irate(node_vmstat_thp_collapse_alloc_failed{instance=~"$node:$port",job=~"$job"}[5m])
Thp_zero_page_alloc - Transparent huge page zeroed page allocations
metrics:
irate(node_vmstat_thp_zero_page_alloc{instance=~"$node:$port",job=~"$job"}[5m])
Thp_zero_page_alloc_failed - Transparent huge page zeroed page allocation failures
metrics:
irate(node_vmstat_thp_zero_page_alloc_failed{instance=~"$node:$port",job=~"$job"}[5m])
Thp_fault_alloc - Transparent huge page fault allocations
metrics:
irate(node_vmstat_thp_fault_alloc{instance=~"$node:$port",job=~"$job"}[5m])
Thp_fault_fallback - Transparent huge page fault fallbacks
metrics:
irate(node_vmstat_thp_fault_fallback{instance=~"$node:$port",job=~"$job"}[5m])
Prometheus Node_exporter 之 Memory Detail Vmstat的更多相关文章
- Prometheus Node_exporter 之 Memory Detail Vmstat Counters
Memory Detail Vmstat Counters 1. Memory Page Active type: GraphUnit: shortLabel: PagesActive_anon - ...
- Prometheus Node_exporter 之 Memory Detail Meminfo /proc/meminfo
1. Memory Active / Inactive type: GraphUnit: bytesLabel: BytesInactive - 最近使用较少的内存, 优先被回收利用 /proc/me ...
- Prometheus Node_exporter 之 System Detail
System Detail 1. Context Switches / Interrupts type: GraphUnit: shortLabel: CounterContext switches ...
- Prometheus Node_exporter 之 FileSystem Detail
FileSystem Detail /proc/filesystems 1. Filesystem space available type: GraphUnit: bytesLabel: Bytes ...
- Prometheus Node_exporter 详解
Basic CPU / Mem / Disk Info https://www.cnblogs.com/qianyuliang/p/10479515.html Basic CPU / Mem / Di ...
- Centos7.X 搭建Prometheus+node_exporter+Grafana实时监控平台
Prometheus简介 什么是 Prometheus Prometheus是一个开源监控报警系统和时序列数据库 主要功能 多维数据模型(时序由 metric 名字和 k/v 的 labels 构成) ...
- Golang 基于Prometheus Node_Exporter 开发自定义脚本监控
Golang 基于Prometheus Node_Exporter 开发自定义脚本监控 公司是今年决定将一些传统应用从虚拟机上迁移到Kubernetes上的,项目多而乱,所以迁移工作进展缓慢,为了建立 ...
- Centos8.X 搭建Prometheus+node_exporter+Grafana实时监控平台
Prometheus Promtheus是一个时间序列数据库,其采集的数据会以文件的形式存储在本地中,因此项目目录下需要一个data目录,需要我们自己创建,下面会讲到 下载 下载好的.tar.gz包放 ...
- Prometheus Node_exporter 之 Network Traffic Detail
Network Traffic Detail /proc/net/dev 1. Network Traffic by Packets type: GraphUnit: packets/secLabel ...
随机推荐
- 解析Service之你需要了解的一些东东
何为Service Service,俗名服务.在Android系统中,Service与Activity就像一个妈生的,不仅长得像,而且行为(生命周期)也有一些类似.对于Activity来说大家肯定不会 ...
- java+selenium+maven+testng框架(一)安装搭建
1.安装jdk(注意:需配置环境变量,可自行百度方法); 2.安装eclipse; 3.安装maven(注意:需配置环境变量,可自行百度方法); 4.在eclipse中新建maven项目 新建成功 注 ...
- wangEditor使用简记
页面 <!--用父容器来控制宽度--> <div style="width:800px"> <!--用当前元素来控制高度--> <text ...
- linux less命令详情
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more .tail更加的有弹性.在 more 的时候,我们并没有办 ...
- windows环境下搭建Java开发环境(一):jdk安装和配置
一.资源下载 官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html 本人安装的是jdk1.8,百度云资源:链接:h ...
- 实现一个简易的vue的mvvm(defineProperty)
这是一个最近一年很火的面试题,很多人看到这个题目从下手,其实查阅一些资料后,简单的模拟还是不太难的: vue不兼容IE8以下是因为他的实现原理使用了 Object.defineProperty 的ge ...
- 【转载】Java8 HashMap之tableSizeFor
Java8对许多内置的容器进行了优化与拓展,其中对HashMap的改变尤其大.之后将进行总结. 最近在看HashMap的源码时,发现了里面好多很不错的算法,相比Java7从性能上提高了许多.其中tab ...
- 设计模式之单例(GCD)
+(Person *)shareManager { static dispatch_once_t onceQueue; static Person *person=nil; dispatch_once ...
- UIKit 框架之UIActionSheet
UIAlertView和UIActionSheet相似,区别很小, 很容易理解. // // ViewController.m // UIActionSheet // // Created by Ci ...
- ABP 数据库 -- ABP&EF中的多表、关联查询
本文介绍一下ABP中的多表查询. 1.创建实体 多表查询,在ABP或者EF中都很简单,这里我们创建一个Demo,一个学生实体.一个学校实体. 学校里面可以有很多学生,学生有一个学校. 实体如下: 学校 ...