cpu利用率计算demo

#include "pch.h"
#include <iostream>
#include <string.h>
int main()
{
	FILE *fp = NULL;
	int  count = 0;
	char cpuinfo[10];
	int  sum[4];
	int total = 0;
	int idel;
	if ((fp = fopen("t.txt", "r")) == NULL)
	{
		return 0;
	}
	while (feof(fp) == 0)
	{
		fscanf(fp, "%3s", cpuinfo);
		if (memcmp(cpuinfo, "cpu", (int)3) == 0)
		{
			for (count = 0; count < 4; count++)
			{
				fscanf(fp, "%d", &sum[count]);
				total += sum[count];
			}
			break;
		}
	}
	idel = sum[3];
	fclose(fp);
	return 0;
}
cpu  9333617 20104 3749935 595862519 1626247 0 376368 0 0 0

使用率计算:

if (flag == ISS_FALSE)
	{
		u4PreTotalTime = u4TotalTime;
		u4PreIdleTime = u4IdleTime;
		return ISS_SUCCESS;
	}

    if ((u4TotalTime > u4PreTotalTime) && (u4IdleTime >= u4PreIdleTime))
    {
        u4CPUUsed = (((u4TotalTime - u4PreTotalTime) - 
							(u4IdleTime - u4PreIdleTime)) * 100) / 
									(u4TotalTime - u4PreTotalTime);
    }

    gIssSysGroupInfo.IssSwitchInfo.u4CurrCPUUsage = u4CPUUsed;

	ISS_TRC_ARG1(DATA_PATH_TRC, "cpu usage %d\n", u4CPUUsed);
	u4PreTotalTime = u4TotalTime;
	u4PreIdleTime = u4IdleTime;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的 Flink 计算广告点击率的 Java 示例代码: ```java import org.apache.flink.api.common.functions.AggregateFunction; import org.apache.flink.api.java.tuple.Tuple; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.streaming.api.TimeCharacteristic; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.streaming.api.functions.KeyedProcessFunction; import org.apache.flink.streaming.api.functions.timestamps.AscendingTimestampExtractor; import org.apache.flink.streaming.api.windowing.time.Time; import org.apache.flink.util.Collector; public class AdClickRateDemo { public static void main(String[] args) throws Exception { // 设置执行环境 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime); // 读取数据源 DataStream<String> inputStream = env.socketTextStream("localhost", 9999); // 转换数据格式 DataStream<AdClickEvent> adClickEventStream = inputStream.map(line -> { String[] fields = line.split(","); return new AdClickEvent(Long.parseLong(fields[0]), Long.parseLong(fields[1]), fields[2], fields[3], Long.parseLong(fields[4])); }).assignTimestampsAndWatermarks(new AscendingTimestampExtractor<AdClickEvent>() { @Override public long extractAscendingTimestamp(AdClickEvent element) { return element.getTimestamp(); } }); // 按广告 ID 分组计算点击量和展示量 DataStream<Tuple2<String, Long>> adClickCountStream = adClickEventStream .keyBy("adId") .timeWindow(Time.minutes(1), Time.seconds(10)) .aggregate(new AdClickEventAggFunc()); // 过滤点击率小于阈值的广告 DataStream<String> filteredAdStream = adClickCountStream .keyBy(0) .process(new AdClickRateFilterFunc(0.01)); // 输出结果 filteredAdStream.print(); env.execute("Ad Click Rate Demo"); } // 广告点击事件 public static class AdClickEvent { private long userId; private long adId; private String province; private String city; private long timestamp; public AdClickEvent() {} public AdClickEvent(long userId, long adId, String province, String city, long timestamp) { this.userId = userId; this.adId = adId; this.province = province; this.city = city; this.timestamp = timestamp; } // getters and setters } // 广告点击量和展示量统计函数 public static class AdClickEventAggFunc implements AggregateFunction<AdClickEvent, Tuple2<Long, Long>, Tuple2<String, Long>> { @Override public Tuple2<Long, Long> createAccumulator() { return Tuple2.of(0L, 0L); } @Override public Tuple2<Long, Long> add(AdClickEvent value, Tuple2<Long, Long> accumulator) { return Tuple2.of(accumulator.f0 + 1, accumulator.f1); } @Override public Tuple2<String, Long> getResult(Tuple2<Long, Long> accumulator) { return Tuple2.of(String.valueOf(accumulator.f1), accumulator.f0); } @Override public Tuple2<Long, Long> merge(Tuple2<Long, Long> a, Tuple2<Long, Long> b) { return Tuple2.of(a.f0 + b.f0, a.f1 + b.f1); } } // 过滤点击率小于阈值的广告函数 public static class AdClickRateFilterFunc extends KeyedProcessFunction<Tuple, Tuple2<String, Long>, String> { private double clickRateThreshold; public AdClickRateFilterFunc(double clickRateThreshold) { this.clickRateThreshold = clickRateThreshold; } @Override public void processElement(Tuple2<String, Long> value, Context ctx, Collector<String> out) throws Exception { double clickRate = (double) value.f1 / ctx.timerService().currentProcessingTime(); if (clickRate > clickRateThreshold) { out.collect(value.f0); } } } } ``` 注意,这只是一个简单示例,实际应用中可能需要更复杂的数据处理和计算逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值