HI,欢迎您光临本站,秉承服务宗旨,销售只是起点,服务永无止境!
    • 短视频文案
      • 励志哲理
      • 名言美句
      • 情感语录
      • 回复热评
      • 解说文案
    • 短视频素材
      • 情感励志
      • 美食小吃
      • 体育运动
      • 生活人文
      • 妙招好物
      • 风景风光
      • 影音娱乐
      • 颜值时尚
      • 游戏动漫
      • 自然景观
    • 短视频课程
      • 同城课程
      • 带货课程
      • 投放课程
      • 玩法课程
    • 中视频素材
    • 短视频工具
    • 副业项目
资源分享吧
  • 首页
  • CMS模板host
    • DEDECMS模板965
    • 易优CMS318
    • WordPress模板146
    • Discuz模板101
    • 帝国CMS102
    • 苹果cms78
    • Pbootcms24
    • zblog模板2
  • 整站源码
    • 教育/交友/直播76
    • 商城/淘宝/网店26
    • 门户/论坛/信息27
    • 小说/新闻/博客76
    • 电影/视频/音乐22
    • 图片/素材/下载49
    • 支付/金融/货币356
    • 导航/目录/友链25
    • 会员/推广/任务57
    • 公众号/小程序/游戏133
  • 一元夺宝new
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    一比一精仿电影挖片网苹果cmsv10模板
    一比一精仿电影挖片网苹果cmsv10模板
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    蓝色清晰织梦资源网下载站源码
    蓝色清晰织梦资源网下载站源码
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    织梦蓝色图纸展示类企业网站源码
    织梦蓝色图纸展示类企业网站源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    prev
    next
  • 网页素材
    • 网页游戏148
    • 网页模板4723
    • 特效代码5467
  • 办公素材
    • PPT模板377
    • 简历模板0
  • 站长学院
    • DEDE教程352
    • wordpress教程416
    • SEO教程124
    • 其它文档教程13
  • 更多
    • 办公教程4
    • 群辉教程12
    • 电脑基础7124
    • GPS导航
    • 安卓系统15
      • Android资讯2
      • ROM0
      • 教程工具0
    • Win系统169
      • Windows XP3
      • Windows 77
      • Windows 80
      • Windows 1012
      • 服务器系统1129
      • Win主题12
      • Win教程26
      • Win资讯0
      • Win软件98
    • 站点标签
    • 更新日志
    • 其他10
登录/注册
  • 精品会员专享
  • 会员折扣下载
  • 每日海量更新
立即开通 开通会员抄底价
当前位置:资源分享吧 > Linux中计算特定CPU使用率案例详解
也想出现在这里? 联系我们吧

Linux中计算特定CPU使用率案例详解

作者 : 小编 本文共8780个字,预计阅读时间需要22分钟 发布时间: 2022-10-21 共523人阅读
也想出现在这里? 联系我们吧

Linux中计算特定CPU使用率 需求解决方案拓展参考

需求

在Linux中可以通过top指令查看某一进程占用的CPU情况,也可以查看某一个CPU使用率情况(先top指令,然后按数字“1”键即可显示每一个CPU的使用情况),如下图:

查看CPU使用情况

而我们的需求是:如何得到一个CPU的占用率呢?

解决方案

1. 背景知识

在/proc/stat中可以查看每一个CPU的使用情况的,如下图:

查看/proc/stat

其中cpu(0/1/2/…)后面的那十个数字含义如下:

/proc/stat
kernel/system statistics.  Varies with architecture.  
Common entries include:

     user nice system idle iowait  irq  softirq steal guest guest_nice
cpu  4705 356  584    3699   23    23     0       0     0        0
cpu0 1393280 32966 572056 13343292 6130 0 17875 0 23933 0
   The amount of time, measured in units of USER_HZ
   (1/100ths of a second on most architectures, use
   sysconf(_SC_CLK_TCK) to obtain the right value), that
   the system ("cpu" line) or the specific CPU ("cpuN"
   line) spent in various states:

   user   (1) Time spent in user mode.

   nice   (2) Time spent in user mode with low priority
          (nice).

   system (3) Time spent in system mode.

   idle   (4) Time spent in the idle task.  This value
          should be USER_HZ times the second entry in the
          /proc/uptime pseudo-file.

   iowait (since Linux 2.5.41)
          (5) Time waiting for I/O to complete.  This
          value is not reliable, for the following rea‐
          sons:

          1. The CPU will not wait for I/O to complete;
             iowait is the time that a task is waiting for
             I/O to complete.  When a CPU goes into idle
             state for outstanding task I/O, another task
             will be scheduled on this CPU.

          2. On a multi-core CPU, the task waiting for I/O
             to complete is not running on any CPU, so the
             iowait of each CPU is difficult to calculate.

          3. The value in this field may decrease in cer‐
             tain conditions.

   irq (since Linux 2.6.0-test4)
          (6) Time servicing interrupts.

   softirq (since Linux 2.6.0-test4)
          (7) Time servicing softirqs.

   steal (since Linux 2.6.11)
          (8) Stolen time, which is the time spent in
          other operating systems when running in a virtu‐
          alized environment

   guest (since Linux 2.6.24)
          (9) Time spent running a virtual CPU for guest
          operating systems under the control of the Linux
          kernel.

   guest_nice (since Linux 2.6.33)
          (10) Time spent running a niced guest (virtual
          CPU for guest operating systems under the con‐
          trol of the Linux kernel).

2.计算具体CPU使用率

有了上面的背景知识,接下来我们就可以计算具体CPU的使用情况了。具体计算方式如下:

Total CPU time since boot = user+nice+system+idle+iowait+irq+softirq+steal
Total CPU Idle time since boot = idle + iowait
Total CPU usage time since boot = Total CPU time since boot - Total CPU Idle time since boot
Total CPU percentage = Total CPU usage time since boot/Total CPU time since boot * 100%

有了上面的计算公式,计算某一CPU使用率或者系统总的CPU占用率也就是不难了。
示例:计算系统整体CPU占用情况
首先从/proc/stat中获取 t1时刻系统总体的user、nice、system、idle、iowait、irq、softirq、steal、guest、guest_nice的值,得到此时Total CPU time since boot(记为total1)和 Total CPU idle time since boot(记为idle1)。
其次,从/proc/stat中获取t2时刻系统总的Total CPU time since boot(记为total2)和Total CPU idle time since boot(记为idle2)。(方法同上一步)
最后,计算t2与t1之间系统总的CPU使用情况。也就是:
CPU percentage between t1 and t2 = ((total2-total1)-(idle2-idle1))/(total2-total1)* 100%
其中, ((total2-total1)-(idle2-idle1))实际上就是t1与t2时刻之间系统CPU被占用的时间(总时间 – 空闲时间)。
下面是一段计算时间段内CPU被占用情况的脚本:

#!/bin/bash
# by Paul Colby (http://colby.id.au), no rights reserved ;)

PREV_TOTAL=0
PREV_IDLE=0

while true; do
  # Get the total CPU statistics, discarding the \'cpu \' prefix.
  CPU=(`sed -n \'s/^cpu\\s//p\' /proc/stat`)
  IDLE=${CPU[3]} # Just the idle CPU time.

  # Calculate the total CPU time.
  TOTAL=0
  for VALUE in "${CPU[@]}"; do
    let "TOTAL=$TOTAL+$VALUE"
  done

  # Calculate the CPU usage since we last checked.
  let "DIFF_IDLE=$IDLE-$PREV_IDLE"
  let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL"
  let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10"
  echo -en "\\rCPU: $DIFF_USAGE%  \\b\\b"

  # Remember the total and idle CPU times for the next check.
  PREV_TOTAL="$TOTAL"
  PREV_IDLE="$IDLE"

  # Wait before checking again.
  sleep 1
done

拓展

在内核中,关于/proc/stat中文件的实现函数如下:

附注:内核版本3.14.69,文件为 /fs/proc/stat.c

#include <linux/cpumask.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/kernel_stat.h>
#include <linux/proc_fs.h>
#include <linux/sched.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
#include <linux/time.h>
#include <linux/irqnr.h>
#include <asm/cputime.h>
#include <linux/tick.h>

#ifndef arch_irq_stat_cpu
#define arch_irq_stat_cpu(cpu) 0
#endif
#ifndef arch_irq_stat
#define arch_irq_stat() 0
#endif

#ifdef arch_idle_time

static cputime64_t get_idle_time(int cpu)
{
	cputime64_t idle;

	idle = kcpustat_cpu(cpu).cpustat[CPUTIME_IDLE];
	if (cpu_online(cpu) && !nr_iowait_cpu(cpu))
		idle += arch_idle_time(cpu);
	return idle;
}

static cputime64_t get_iowait_time(int cpu)
{
	cputime64_t iowait;

	iowait = kcpustat_cpu(cpu).cpustat[CPUTIME_IOWAIT];
	if (cpu_online(cpu) && nr_iowait_cpu(cpu))
		iowait += arch_idle_time(cpu);
	return iowait;
}

#else

static u64 get_idle_time(int cpu)
{
	u64 idle, idle_time = -1ULL;

	if (cpu_online(cpu))
		idle_time = get_cpu_idle_time_us(cpu, NULL);

	if (idle_time == -1ULL)
		/* !NO_HZ or cpu offline so we can rely on cpustat.idle */
		idle = kcpustat_cpu(cpu).cpustat[CPUTIME_IDLE];
	else
		idle = usecs_to_cputime64(idle_time);

	return idle;
}

static u64 get_iowait_time(int cpu)
{
	u64 iowait, iowait_time = -1ULL;

	if (cpu_online(cpu))
		iowait_time = get_cpu_iowait_time_us(cpu, NULL);

	if (iowait_time == -1ULL)
		/* !NO_HZ or cpu offline so we can rely on cpustat.iowait */
		iowait = kcpustat_cpu(cpu).cpustat[CPUTIME_IOWAIT];
	else
		iowait = usecs_to_cputime64(iowait_time);

	return iowait;
}

#endif

static int show_stat(struct seq_file *p, void *v)
{
	int i, j;
	unsigned long jif;
	u64 user, nice, system, idle, iowait, irq, softirq, steal;
	u64 guest, guest_nice;
	u64 sum = 0;
	u64 sum_softirq = 0;
	unsigned int per_softirq_sums[NR_SOFTIRQS] = {0};
	struct timespec boottime;

	user = nice = system = idle = iowait =
		irq = softirq = steal = 0;
	guest = guest_nice = 0;
	getboottime(&boottime);
	jif = boottime.tv_sec;

	for_each_possible_cpu(i) {
		user += kcpustat_cpu(i).cpustat[CPUTIME_USER];
		nice += kcpustat_cpu(i).cpustat[CPUTIME_NICE];
		system += kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
		idle += get_idle_time(i);
		iowait += get_iowait_time(i);
		irq += kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
		softirq += kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
		steal += kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
		guest += kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
		guest_nice += kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
		sum += kstat_cpu_irqs_sum(i);
		sum += arch_irq_stat_cpu(i);

		for (j = 0; j < NR_SOFTIRQS; j++) {
			unsigned int softirq_stat = kstat_softirqs_cpu(j, i);

			per_softirq_sums[j] += softirq_stat;
			sum_softirq += softirq_stat;
		}
	}
	sum += arch_irq_stat();

	seq_puts(p, "cpu ");
	seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(user));
	seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(nice));
	seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(system));
	seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(idle));
	seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(iowait));
	seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(irq));
	seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(softirq));
	seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(steal));
	seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(guest));
	seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(guest_nice));
	seq_putc(p, \'\\n\');

	for_each_online_cpu(i) {
		/* Copy values here to work around gcc-2.95.3, gcc-2.96 */
		user = kcpustat_cpu(i).cpustat[CPUTIME_USER];
		nice = kcpustat_cpu(i).cpustat[CPUTIME_NICE];
		system = kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
		idle = get_idle_time(i);
		iowait = get_iowait_time(i);
		irq = kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
		softirq = kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
		steal = kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
		guest = kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
		guest_nice = kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
		seq_printf(p, "cpu%d", i);
		seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(user));
		seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(nice));
		seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(system));
		seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(idle));
		seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(iowait));
		seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(irq));
		seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(softirq));
		seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(steal));
		seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(guest));
		seq_put_decimal_ull(p, \' \', cputime64_to_clock_t(guest_nice));
		seq_putc(p, \'\\n\');
	}
	seq_printf(p, "intr %llu", (unsigned long long)sum);

	/* sum again ? it could be updated? */
	for_each_irq_nr(j)
		seq_put_decimal_ull(p, \' \', kstat_irqs_usr(j));

	seq_printf(p,
		"\\nctxt %llu\\n"
		"btime %lu\\n"
		"processes %lu\\n"
		"procs_running %lu\\n"
		"procs_blocked %lu\\n",
		nr_context_switches(),
		(unsigned long)jif,
		total_forks,
		nr_running(),
		nr_iowait());

	seq_printf(p, "softirq %llu", (unsigned long long)sum_softirq);

	for (i = 0; i < NR_SOFTIRQS; i++)
		seq_put_decimal_ull(p, \' \', per_softirq_sums[i]);
	seq_putc(p, \'\\n\');

	return 0;
}

static int stat_open(struct inode *inode, struct file *file)
{
	size_t size = 1024 + 128 * num_possible_cpus();
	char *buf;
	struct seq_file *m;
	int res;

	/* minimum size to display an interrupt count : 2 bytes */
	size += 2 * nr_irqs;

	/* don\'t ask for more than the kmalloc() max size */
	if (size > KMALLOC_MAX_SIZE)
		size = KMALLOC_MAX_SIZE;
	buf = kmalloc(size, GFP_KERNEL);
	if (!buf)
		return -ENOMEM;

	res = single_open(file, show_stat, NULL);
	if (!res) {
		m = file->private_data;
		m->buf = buf;
		m->size = ksize(buf);
	} else
		kfree(buf);
	return res;
}

static const struct file_operations proc_stat_operations = {
	.open		= stat_open,
	.read		= seq_read,
	.llseek		= seq_lseek,
	.release	= single_release,
};

static int __init proc_stat_init(void)
{
	proc_create("stat", 0, NULL, &proc_stat_operations);
	return 0;
}
fs_initcall(proc_stat_init);

参考

http://man7.org/linux/man-pages/man5/proc.5.html

https://github.com/pcolby/scripts/blob/master/cpu.sh

https://elixir.bootlin.com/linux/v3.14.69/source/fs/proc/stat.c

到此这篇关于Linux中计算特定CPU使用率案例详解的文章就介绍到这了,更多相关Linux中计算特定CPU使用率内容请搜索资源分享吧以前的文章或继续浏览下面的相关文章,希望大家以后多多支持资源分享吧!

Linux linux教程
1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: rayer@88.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » Linux中计算特定CPU使用率案例详解

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
织梦模板使用说明
你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html
小编

小编 VIP

分享到:
上一篇
Linux sar命令详解之分析系统性能案例
下一篇
virtualbox打不开虚拟机怎么办? linux无法访问virtualbox的解决办法

发表评论 取消回复

要发表评论,您必须先登录。

最新文章
餐饮火锅加盟网站pbootcms模板源码
餐饮火锅加盟网站pbootcms模板源码
源码下载新闻资讯博客网站pbootcms模板
源码下载新闻资讯博客网站pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
红色火锅加盟网站pbootcms模板源码
红色火锅加盟网站pbootcms模板源码
蓝色源码钢结构工程基建网站pbootcms模板
蓝色源码钢结构工程基建网站pbootcms模板
标签云
DEDECMS (483) dedecms教程 (326) eyoucms (270) html (364) html5 (1717) html模板 (733) Linux (1245) linux教程 (1245) wordpress教程 (380) 下载 (277) 代码 (816) 企业网站模板 (874) 企业网站模板下载 (874) 免费企业网站模板 (874) 入侵防御 (270) 公司网站模板 (874) 切换 (502) 动画 (594) 国内网站模板 (324) 图片 (582) 技术网络漏洞 (347) 插件 (447) 效果 (765) 源码 (381) 漏洞 (371) 漏洞分析 (347) 特效 (789) 电脑使用 (4064) 电脑操作 (4064) 短视频素材 (606) 笔记本电脑价格 (4037) 笔记本电脑品牌排行 (4037) 笔记本电脑知识 (4037) 笔记本电脑评测 (4037) 素材 (483) 织梦 (407) 织梦教程 (342) 网站模板 (436) 网站源码 (417) 网站漏洞检测 (347) 网络安全WEB漏洞 (347) 菜单 (299) 视频 (376) 这是 (345) 鼠标 (417)

限时优惠

【阿里云】云产品采购季,助力行业复工。新用户专享1折起,云服务器低至0.75折,更多产品可叠加专属代金券下单
立即查看

相关推荐

Linux mpstat命令的方法(实时系统监控工具)
小编小编

Linux mpstat命令的方法(实时系统监控工具)

简介 mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的...
  • 361
  • 免费
  • 下载
鸿蒙系统公测版如何升级正式版 鸿蒙公测版和正式版区别是什么
小编小编

鸿蒙系统公测版如何升级正式版 鸿蒙公测版和正式版区别是什么

鸿蒙系统一经发布随着引发了网络上热烈的讨论和关注,首先出场的是鸿蒙系统公测版,鸿蒙系统公测版毕竟是公测版,鸿蒙系统公测版和正式版还是有区别的,那么鸿蒙公测版和正式版区别在哪呢?鸿蒙系统公测版怎么升级正式版呢?咱们接着往下看。 鸿蒙系统公测版怎么升级正式...
  • 3.52K
  • 免费
  • 下载
Linux Kernel 4.10第5个候选版本RTM版发布 2月12日发布正式版
小编小编

Linux Kernel 4.10第5个候选版本RTM版发布 2月12日发布正式版

Linux内核发明人Linus Torvalds今天发布了Linux内核4.10的第5个候选版本(也就是RTM版),相隔上一个版本已过去约一周的时间。Torvalds表示正式版4.10内核将在2月12日到来。 Linus Torvalds表示:Linu...
  • 2.81K
  • 免费
  • 下载
Linux下使用Speedtest测试网速的方法
小编小编

Linux下使用Speedtest测试网速的方法

Speedtest是用来测试网络性能的开源软件,在Linux下面安装Speedtest可以用来测试网络出口的上传和下载速度,帮助排查网络方面导致的故障。 Speedtest介绍 由于公司几个项目用户访问的时候响应较慢,项目本身没问题,服务及调用的接口返...
  • 2.92K
  • 免费
  • 下载
  • 3126本站运营(天)
  • 62874用户总数
  • 26548资源数(个)
  • 2近7天更新(个)
  • 82301资源大小(GB)
加入VIP获取全站资源

「资源分享吧」 ZYFX8.CN

国内极具人气的网络源码资源交流学习平台
下载源码文章,学软件教程,找灵感素材,尽在「资源分享吧」

按Ctrl+D收藏本站

找资源就上「 资源分享吧 」

WWW.ZYFX8.CN

资源分享吧

资源分享吧(www.zyfx8.cn)是一家专门做精品素材的网站,网站以网站源码、网站模板、网页特效为主要内容,以“共享创造价值”为理念,以“尊重原创”为准则。

本站导航
  • 热门标签
  • 网站专题
  • 站点地图
更多导航
  • 申请友链
  • 用户协议
  • 免责声明
快速搜索
    友情链接 自助申请友链
  • RiTheme主题
  • wordpress主题
  • 在线PS修图
  • 源码下载
  • 网站模板
  • 资源分享吧
Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 蜀ICP备14022927号-1
资源分享吧(www.zyfx8.cn)是一家专门做精品素材的网站,以“共享创造价值”为理念,以“尊重原创”为准则。
  • 会员特惠
  • 签到
  • 客服

    在线客服

    点我联系

    直接说出您的需求!
    切记!带上资源链接与问题!

    工作时间: 9:30-21:30

  • 更新
    日历
  • 全屏
  • 首页

  • 签到

  • 切换

  • 客服

资源分享吧
  • 登录
  • 注册
or
or
忘记密码?
资源分享吧
  • 首页
  • CMS模板host ►
    • DEDECMS模板965
    • 易优CMS318
    • WordPress模板146
    • Discuz模板101
    • 帝国CMS102
    • 苹果cms78
    • Pbootcms24
    • zblog模板2
  • 整站源码 ►
    • 教育/交友/直播76
    • 商城/淘宝/网店26
    • 门户/论坛/信息27
    • 小说/新闻/博客76
    • 电影/视频/音乐22
    • 图片/素材/下载49
    • 支付/金融/货币356
    • 导航/目录/友链25
    • 会员/推广/任务57
    • 公众号/小程序/游戏133
  • 一元夺宝new
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    一比一精仿电影挖片网苹果cmsv10模板
    一比一精仿电影挖片网苹果cmsv10模板
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    蓝色清晰织梦资源网下载站源码
    蓝色清晰织梦资源网下载站源码
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    织梦蓝色图纸展示类企业网站源码
    织梦蓝色图纸展示类企业网站源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    prev
    next
  • 网页素材 ►
    • 网页游戏148
    • 网页模板4723
    • 特效代码5467
  • 办公素材 ►
    • PPT模板377
    • 简历模板0
  • 站长学院 ►
    • DEDE教程352
    • wordpress教程416
    • SEO教程124
    • 其它文档教程13
  • 更多 ►
    • 办公教程4
    • 群辉教程12
    • 电脑基础7124
    • GPS导航
    • 安卓系统15 ►
      • Android资讯2
      • ROM0
      • 教程工具0
    • Win系统169 ►
      • Windows XP3
      • Windows 77
      • Windows 80
      • Windows 1012
      • 服务器系统1129
      • Win主题12
      • Win教程26
      • Win资讯0
      • Win软件98
    • 站点标签
    • 更新日志
    • 其他10
文章展示
交易所源码搭建教程java多语言部署
交易所源码搭建教程java多语言部署
餐饮火锅加盟网站pbootcms模板源码
餐饮火锅加盟网站pbootcms模板源码
源码下载新闻资讯博客网站pbootcms模板
源码下载新闻资讯博客网站pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
红色火锅加盟网站pbootcms模板源码
红色火锅加盟网站pbootcms模板源码
蓝色源码钢结构工程基建网站pbootcms模板
蓝色源码钢结构工程基建网站pbootcms模板
开通VIP 享更多特权,建议使用QQ登录
账号登录/注册
QQ登录
微博登录
×

    回馈用户限时特惠

    「 资源分享吧 」国内极具人气的网络资源交流学习平台,海量资源每天更新,优质资源畅快下载

    终身SVIP原价 590元,国庆限时活动价仅需 “ 59元 ”,终身免费~~机不可失~~


    立即开通永久会员>>