duże tablice w Delphi

0

czy najnowsze kompilatory Borlanda mają możliość alokowania tablicy o wielkości np 5GB?

sprawdzałem na stronie Borlanda. tam podają, że Code Gear działa z Net 2.0 ale czy z tego wynika, że takie tablice da się tworzyć?

0

Zatem pewnie się da, ale tylko w programach pisanych w Delphi .NET na framework 2.0. Inną sprawą jest kwestia tego, że program, który wymaga tak wielkiej tablicy, jest po prostu źle zaprojektowany.

0

Czy mi się wydaje, czy zaalokować taką tablicę można tylko w systemach 64-bitowych, a kompilatora Delphi dla x64 na razie jeszcze nie ma?

0
Ktos napisał(a)

Czy mi się wydaje, czy zaalokować taką tablicę można tylko w systemach 64-bitowych, a kompilatora Delphi dla x64 na razie jeszcze nie ma?

Ja też mam takie wrażenie. W końcu 2^32 = 4 294 967 296, a więc limit możliwy do zaadresowania w systemie 32 bitowym to 4GB. Z kolei 64 bitowego Delphi nigdy nie musiałem szukać ;)

Ale skoro przedmówca odwołuje się do .NET 2.0 (jako umożliwiającego takie działanie [chyba że go źle zrozumiałem]; a o tym nic mi nie wiadomo) to napisałem, że zapewne się da, jeśli Delphi je obsługuje.

0

Owszem, zaadresować można 4GB ale zwykle górne 2GB są dostępne wyłącznie dla jądra systemu. Z tego dolnego bloku też zbyt dużego, ciągłego bloku się nie wykroi - stosy wątków, zmapowane pliki, struktury kontrolne, sterty... to wszystko jest porozrzucane po tych 2GB.

0
deus napisał(a)

Owszem, zaadresować można 4GB ale zwykle górne 2GB są dostępne wyłącznie dla jądra systemu.
O tym, że z ciągłym obszarem może być problem wiedziałem, ale czy mógłbyś napisać czemu górne 2GB są dostępne tylko dla jądra (i czy ono w ogóle z nich korzysta czy tylko blokuje dostęp)?

Zawsze człowiek się czegoś nowego może dowiedzieć..

0

Tzn. tak jest domyślnie np. w Windows. Programy w Ring3 mają ograniczenie segmentów do 2GB. Ale pamięć jądra w sumie jest wspólna dla wszystkich procesów. W tej przestrzeni znajdują się różne klamoty jak bufory itd. pamięć jest na podobnych zasadach jak dla procesu - w końcu w tej przestrzeni są wszystkie sterowniki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1