1 #include <iostream>
2 #include <cmath>
3 #include <ctime>
4 #include <windows.h>
5
6 using namespace std;
7
8 //得到循环0xFFFFFFFF次用的秒数
9 unsigned int test()
10 {
11 unsigned int c = 0xFFFFFFFF;
12
13 time_t t1, t2;
14 time(&t1);
15
16 for(unsigned int i = 0; i < c; i++)
17 ;
18 time(&t2);
19 return (unsigned int)(t2 -t1);
20
21 }
22
23
24 #define T 20000 //周期时间 20秒
25 #define C 100 //采样点时间间隔
26 #define PI 3.1415 //PI
27 const unsigned int count = 0xFFFFFFFF / (test() *1000); //每秒可以执行的循环数目
28 const unsigned int N = T/C; //周期内采样点数目
29 unsigned int v[N] = { 0 }; //所有采样点连续执行循环数
30 unsigned int mt[N] = { 0 }; //所有采样点休眠毫秒数
31
32 int main()
33 {
34 //计算循环次数和休眠时间
35 for(int i = 0; i < N; i++)
36 {
37 double x = (2 * PI / N)* i ;//2*PI/N 是把2PI的x轴 分成N份,再乘i得到第i个点相对于sin函数的横坐标
38 double r = (sin(x) + 1) / 2;//将sine函数映射到[0,1],as a coefficient,作为单位时间C内工作的时间比例(y轴0-100%)
39
40 mt[i] = C - r * C;//(1-r)C,在单位时间C应该休息多久, 在当前C 里面工作r*c, 休息(1-r)*C,绘制的一个点。下一个C又绘制一个,y值是sin得来所以看起来近似正选
//rate = work/C -> rate = r -> work = r*c
41 v[i] = r * C * count;//r*C在单位时间C应该工作多久,再*count,得到需要多少个for
42 }
43 for(;;)
44 {
45 for(int i = 0; i < N; i++)
46 {
47 for(int j = 0; j < v[i]; j++)
48 ;
49 Sleep(mt[i]);
50 }
51 }
52 }
分享到:
相关推荐
嵌入式系统中CPU通常不能有计算一些数学函数的资本,本文提供了一种简洁的计算方法。
在任务管理器中把cpu使用记录调成一张表,然后可以看到cpu是按正弦波运行的。同时运行的任务越少,正弦波越好
DMA意味着“没有CPU”干预,因此,不影响CPU性能。 因此,LUT只是我们预先计算“我们要查找”的值的数组。 非常方便和机智! 我们可以设计您可能想到的任何波形。 但是,在继续进行任意波形生成之前,我们首先需要...
语言:español 这个扩展块在泡沫中的广告横幅... 它提高了性能,因为若干元素被阻止,这消耗了25%的CPU资源。 正如Calopez无法修复它,我创建了这个迷你扩展,以避免额外的资源消耗,并避免在底部出来的那些新的禁令。
IAR Systems日前发布了支持Atmel全新AVR32嵌入式CPU内核的IAR Embedded Workbench。同日发布的AVR32架构,结合IAR Embedded Workbench for AVR32,可用于开发要求苛刻的各种应用,例如消费者娱教、销售终端...
功能强大... 可以监视,时间,进程,窗口,鼠标,文件,目录,网络,内存,cpu, 另带。杀进程。窗口标题,简单下载...==
cpu_interface.v serial_interface.v status_registers.v tester.v uart_tb.v uart_top.v xmit_rcv_control.v `resetall `timescale 1ns/10ps module uart_top( // 3-bit address bus addr, clk, // 10 MHz...
注意:由于 CPU 或操作系统所使用的算法不同,Math 函数 acos、asin、atan、atan2、cos、exp、log、pow、sin 和 sqrt 得出的值可能会稍有不同。 执行上述函数的计算时,Flash Player 将调用 CPU(或操作系统,如果 ...
_____ ______ _ _ _____ / __ \| ___ \ | | | |_ _| | / \/| |_/ / | | | | | ___ _ __ ___ _ __ | | | __/| | | | | |/ _ \ '_ ` _ \| '_ \ | \__/\| | | |_| | | | __/ | | | | | |_) | ...
说他可望是因为在编译环境函数库中,这些运算都可以通过软件来实现,但他付出的代价是较长代码长度和大量的CPU运算时间。代码长度也许是系统可以承受的,但大量的CPU运算时间则是实时控制系统无法接受的。 Xinnova...
前任: ~ > calc " 1 + 1 "2~ > calc " math.sin(math.pi/2) "1.0复制视频到phone.sh 将文件列表(不仅仅是视频!)复制到通过ADB通过USB连接的Android手机上。cpu-temps.py 打印每个CPU内核的温度。 包括最小,...
Sin() RegistryDelete() PrintCancel() SignalError() Sqrt() RegistryGet() PrintClose() UnitsToPixels() Tan() RegistryKeys() PrintDataWindow() Truncate() RegistrySet() PrintDefineFont() ...
在python运行一些,计算复杂度比较高的函数时,服务器端单核CPU的情况比较耗时,因此需要多CPU使用多进程加快速度 2.函数要求 笔者使用的是:pathos.multiprocessing 库,进度条显示用tqdm库,安装方法: pip ...
python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启子进程,并在子...
memcpy(&ip->sin_addr, addr_list[0], sizeof(ip->sin_addr)); return 1; } //Open a connection to a webserver and request an URL. Yes, this possibly is one of the worst ways to do this, //but RAM is ...
一个执行流是由CPU运行程序代码并操作程序的数据所形成的。因此,线程被认为是以CPU为主体的行为。 线程不包含进程地址空间中的代码和数据,线程是计算过程在某一时刻的状态。所以,系统在产生一个线程或各个线程...
本系统主要采用了三星S5PV210(CPU)为核心,运行主频可高达1GHz,S5PV210内部集成了PowerVR SGX540高性能图形引擎,支持3D图形流畅运行,并可播放1080P大尺寸高清视频。SIN210开发板使用了核心板+底板的方案。S5PV...
accepts functions: cos, sin, tg, ctg, abs, sgn or sign, sqrt, ln, exp, arcsin, arccos, arctg or arctan, arcctg, sh or sinh, ch or cosh, th or tanh, cth or coth, heaviside; supports unlimited number ...
像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的利用率会比threading好的多。 简单的创建进程: import multiprocessing def worker(num): thread worker function print '...