PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pages ... immer und überall 4kiB?


zeckensack
2005-01-09, 16:45:39
C/Win32:
#include <windows.h>
#include <stdio.h>
int main()
{
SYSTEM_INFO si;
GetSystemInfo(&si);
printf("%d bytes pro Page\n",si.dwPageSize);
return(0);
}

Ich hätte da ... Code, der nur mit 4kiB-Pages akzeptabel funktioniert. Mit 2MiB-Pages geht's auch, allerdings ist die Performance dann absolut grauenhaft.

Gibt es irgendeine Möglichkeit für End-User (mit Pro oder Home-Editionen), diesen Parameter zu zertweaken, ob jetzt gewollt oder aus Versehen?
Evtl gar durch dieses "Large system cache"-Dingsbums?

Demirug
2005-01-09, 22:13:07
Also Large System Cache hat damit nichts zu tun. Damit steuert man nur was das System in wie weit das System unbenutzen Speicher als Filecache benutzten darf.

Die Pagesize kommt direkt aus dem Memorymanager und ist fest hinterlegt. Allerdings ist sie nicht zwingend 4KiB für alle Win32 Systeme. IIRC haben haben Alphas und IA64 Systeme 8KiB Pages. Wie das bei all den für Win.CE benutzten CPUs aussieht weiß ich jetzt nicht.

Da du aber nach 4KiB vs 2MiB fragst gehe ich davon aus das dich nur x86-32 CPUs interesieren. Dort werden laut allen Unterlagen die ich habe immer 4KiB Pages benutzt.

del_4901
2005-01-10, 00:20:27
Demi das stimmt nicht ganz die Intel x86 Familie unterstützt 4kB oder 4Mb Pages.

http://www-bs.informatik.tu-cottbus.de/fileadmin/user_upload/pdf/bs2/Kachelung.pdf
Seite 7

zeckensack
2005-01-10, 11:13:28
Demi das stimmt nicht ganz die Intel x86 Familie unterstützt 4kB oder 4Mb Pages.

http://www-bs.informatik.tu-cottbus.de/fileadmin/user_upload/pdf/bs2/Kachelung.pdf
Seite 74MB? Das müsste PAE sein. PAE ist aber eigentlich eine andere Kiste, weil es den Gesamtadressraum auf Kosten von lustigen Fenstereinblendungen vergrößert. Für Rechner mit <=2GB RAM total kontraproduktiv. Das sollte wirklich niemand aktiviert haben.

PSE dagegen vergrößert einfach nur die Pages, ohne sonstige Änderungen, auf 2MiB. Das könnte für 99,9% aller Software einfach so funktionieren, deswegen steht zu befürchten dass das irgendjemand nutzt.

edit: War falsch. PSE kann auch 4MiB-Pages nutzen.

zeckensack
2005-01-10, 11:19:10
Also Large System Cache hat damit nichts zu tun. Damit steuert man nur was das System in wie weit das System unbenutzen Speicher als Filecache benutzten darf.

Die Pagesize kommt direkt aus dem Memorymanager und ist fest hinterlegt. Allerdings ist sie nicht zwingend 4KiB für alle Win32 Systeme. IIRC haben haben Alphas und IA64 Systeme 8KiB Pages. Wie das bei all den für Win.CE benutzten CPUs aussieht weiß ich jetzt nicht.

Da du aber nach 4KiB vs 2MiB fragst gehe ich davon aus das dich nur x86-32 CPUs interesieren. Dort werden laut allen Unterlagen die ich habe immer 4KiB Pages benutzt.Genau, nur x86-32, und auch nur Win32-Systeme.

Hab' aber gerade noch was gefunden.
http://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx
Sieht gut aus.

micki
2005-01-10, 11:40:43
Genau, nur x86-32, und auch nur Win32-Systeme.

Hab' aber gerade noch was gefunden.
http://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx
Sieht gut aus.
win95/98 hat 64kbyte pages...

MfG
micki

zeckensack
2005-01-10, 14:16:57
win95/98 hat 64kbyte pages...

MfG
mickiIch habe hier ein Windows 98SE, das 4kiB Pages meldet.
si.dwAllocationGranularity ist 64kiB (auch auf Windows 2000), aber das ist a)was anderes und b)ziemlich egal.