Sysop: | Amessyroom |
---|---|
Location: | Fayetteville, NC |
Users: | 43 |
Nodes: | 6 (0 / 6) |
Uptime: | 94:16:59 |
Calls: | 290 |
Calls today: | 1 |
Files: | 904 |
Messages: | 76,378 |
The following result up to 8 Gbyte are more sensible,
up to 8 Gbyte the second time is faster.
root@cherry:/home/albert/PROJECT/ciforths/ciforth# nice -20 lina16G++
WANT ELAPSED
....
OK
MARK-TIME HERE 1,000,000,000 ERASE ELAPSED .mS
537.777mS OK
MARK-TIME HERE 1,000,000,000 ERASE ELAPSED .mS
253.468mS OK
MARK-TIME HERE 1,000,000,000 ERASE ELAPSED .mS
257.628mS OK
MARK-TIME HERE 2,000,000,000 ERASE ELAPSED .mS
781.149mS OK
MARK-TIME HERE 2,000,000,000 ERASE ELAPSED .mS
503.593mS OK
MARK-TIME HERE 4,000,000,000 ERASE ELAPSED .mS
1916.234mS OK
MARK-TIME HERE 4,000,000,000 ERASE ELAPSED .mS
1554.072mS OK
MARK-TIME HERE 8,000,000,000 ERASE ELAPSED .mS
8059.426mS OK
MARK-TIME HERE 8,000,000,000 ERASE ELAPSED .mS
5519.860mS OK
On Tue, 24 Sep 2024 12:20:42 +0000, albert@spenarnc.xs4all.nl wrote:
[..]
The following result up to 8 Gbyte are more sensible,
up to 8 Gbyte the second time is faster.
root@cherry:/home/albert/PROJECT/ciforths/ciforth# nice -20 lina16G++
WANT ELAPSED
....
OK
MARK-TIME HERE 1,000,000,000 ERASE ELAPSED .mS
537.777mS OK
MARK-TIME HERE 1,000,000,000 ERASE ELAPSED .mS
253.468mS OK
MARK-TIME HERE 1,000,000,000 ERASE ELAPSED .mS
257.628mS OK
MARK-TIME HERE 2,000,000,000 ERASE ELAPSED .mS
781.149mS OK
MARK-TIME HERE 2,000,000,000 ERASE ELAPSED .mS
503.593mS OK
MARK-TIME HERE 4,000,000,000 ERASE ELAPSED .mS
1916.234mS OK
MARK-TIME HERE 4,000,000,000 ERASE ELAPSED .mS
1554.072mS OK
MARK-TIME HERE 8,000,000,000 ERASE ELAPSED .mS
8059.426mS OK
MARK-TIME HERE 8,000,000,000 ERASE ELAPSED .mS
5519.860mS OK
This is exactly the problem that I encountered on
Windows: allocating GBytes of memory is a lot faster
the second time you do it, which points to an OS
memory-management feature. For me it happened when
the allocated memory size was reaching 1GB on a 32GB
system with 20GB still free, so your Linux numbers are
actually quite good.
I hoped to improve matters with the Working-Set
size (which is explicitly shown on Windows 11's
Task manager) but was not successful at the time
(will look again).
-marcel--
8 Gigabyte would take 2 seconds. Although the whole program fits
comfortably in RAM, it takes 30 times longer.
What gives?
I don't know (yet) how it works in Linux, but in Windows there
is something called 'Working-Set'. If I exceed that value,
things slow down.
It is quite difficult (if not impossible) to increase the
Working-Set without extensive knowledge (believe me, I tried).
On Mon, 23 Sep 2024 17:51:58 +0000, mhx wrote:
I don't know (yet) how it works in Linux, but in Windows there
is something called 'Working-Set'. If I exceed that value,
things slow down.
It is quite difficult (if not impossible) to increase the
Working-Set without extensive knowledge (believe me, I tried).
Have you tried the SetProcessWorkingSetSize function
(memoryapi.h)?
It sets the minimum and maximum working set sizes for the
specified process, they say...
On Mon, 23 Sep 2024 18:19:44 +0000, minforth wrote:
Have you tried the SetProcessWorkingSetSize function
(memoryapi.h)?
It sets the minimum and maximum working set sizes for the
specified process, they say...
Yes, but...
On Mon, 30 Sep 2024 9:53:32 +0000, albert@spenarnc.xs4all.nl wrote:[..]
FORTH> .TICKER-INFO
AMD Ryzen 7 5800X 8-Core Processor, timer & PROCESSOR-CLOCK of 4192MHz
Peak WorkingSetSize = 12075 kB
Current WorkingSetSize = 631 kB
Total memory size = 31 GB
Available memory size = 16 GB
The WorkingSetSize reflects the program's size + allocated memory.
AFAIR, this was a lot worse a few years ago.
Mysteriously, available memory size is still 16 GB.