Stormwind
24c3628353
This test tries to show the load of a single core in dependency how much the load is. The highter the load the more intensive is the color. So one core with a load of nearly 100% is about 6 times more intensive than a core with a load of nearly 0%.
63 lines
1.4 KiB
Ruby
63 lines
1.4 KiB
Ruby
require 'RMagick'
|
|
|
|
include Magick
|
|
|
|
# Create a dummy list including 300 cores, with a load between 0 and 100
|
|
numberGenerator = Random.new()
|
|
|
|
# heatmap over 5 minutes by one measure per 5 sec
|
|
dummyList = Array.new(60) do
|
|
# 16 dummy cores
|
|
# lets say 10 cores have a load up to 10%
|
|
# 4 have a load up to 30%
|
|
# and 2 have a load up to 100%
|
|
j = 0
|
|
cores = Array.new(16) do
|
|
j = j + 1
|
|
case
|
|
when j <= 10
|
|
numberGenerator.rand(10)
|
|
when (j >= 11 and j <= 14)
|
|
numberGenerator.rand(30)
|
|
when (j >= 15 and j <= 16)
|
|
numberGenerator.rand(100)
|
|
end
|
|
end
|
|
|
|
# every 10 load percent one heatpoint
|
|
i = 0
|
|
Array.new(10) do
|
|
amount = cores.select { |core| core >= i and core < (i+10)}.length
|
|
i = i + 10
|
|
amount
|
|
end
|
|
end
|
|
|
|
# puts dummyList.inspect
|
|
|
|
# start drawing the damn thing
|
|
loadImg = Image.new(900,150) { self.background_color = "white" }
|
|
|
|
i = 0
|
|
dummyList.each do |point|
|
|
j = 0
|
|
k = 10
|
|
point.reverse.each do |cores|
|
|
# draw a red rectangle on the white background
|
|
core = Draw.new
|
|
|
|
weightedCores = 0
|
|
weightedCores = k**0.8*cores*7.96875 if cores != 0
|
|
weightedCores = 127.5 if weightedCores > 127.5
|
|
l = (255-weightedCores).round
|
|
core.fill(Pixel.from_hsla(0, 255, l, 1).to_color)
|
|
core.rectangle((i*15), (j*15), ((i+1)*15), ((j+1)*15))
|
|
core.draw loadImg
|
|
j = j + 1
|
|
k = k - 1
|
|
end
|
|
i = i + 1
|
|
end
|
|
|
|
loadImg.display
|