|
|
Algorithm 1 Dynamic sampling rate algorithm. |
|
| SampleRateList ← InitSampleRate(Frequencies) |
| MaxMemoryList ← InitMemoryList(Memories) |
| AmevaIsRunning ← true |
| Count ← 0 |
| WinSize ← 5 |
| WinSamples ← 50 * WinSize; |
| Aprevious ← GetAmevaActivity(Statistics) |
| while
AmevaIsRunning
do
|
| Alast ← GetAmevaActivity(Statistics) |
| if
Alast == Aprevious
then
|
| Count ← ActivityMemory + 1 |
| else
|
| Count ← 0 |
| end if
|
| if IsCriticalActivity(Alast) and
|
| Count > GetMaxMemory(Alast) then
|
| NewFrequency ← SampleRateList(Alast) |
| WinSamples ← NewFrequency * WinSize
|
| end if
|
| if
Count%30 == MaxMemoryList(Alast) then
|
| WinSize ← WinSize + log2(Count%30) |
| WinSamples ← NewFrequency * WinSize
|
| end if
|
| Aprevious ← Alast
|
| end while
|
|