64 bitowe Visual Studio 2008 , Visual C ++


(Rbator) #1

jak wygląda mozliwość pracy z wiekszą ilością pamięci niż 4 GB w Microsoft Visual Studio 2008 , Visual C ++ ; interesuje mnie tryb 64 bitowy ?


(Fiołek) #2

Kompilator 64-bitowy jest w wersji Standard i wyższych.


(Rbator) #3

to znaczy , że mogę pisać program powyżej 4 GB ?


(Fiołek) #4

Program i 4GB? Chcesz tyle zaalokować dla jednej aplikacji? A gdzie miejsce dla systemu i innych aplikacji? Na desktopach 4GB dopiero zaczyna być normą :wink:

4GB to nawet Crysis nie alokuje...


(Rbator) #5

Odpowiedz mi na pytanie . Czy Microsoft Visual Studio 2008 będzie działał na systemie 64 bitowym ( wykorzystując 64 bity ) i czy mogę wykorzystywać na nim powyżej 4 GB pamięci ?


(mktos) #6

Tak, będzie działał, tak, posiada kompilator dla x64, więc aplikacje skompilowane w nim będą mogły używać powyżej 2 GB pamięci.

4 GB to łączny limit dla "normalnego" x86, ale per proces jest "tylko" 2 GB.


(Rbator) #7

nie rozumiem ? "aplikacje skompilowane w nim będą mogły używać powyżej 2 GB pamięci" ?

Interesuje mnie przełamanie progu 4 GB i używanie pełnej pamięci niektórych maszyn tj. 64 GB , 128 GB , 192 GB .

co oznacza ? "4 GB to łączny limit "normalnego"x86 , ale per proces jest "tylko" 2 GB " ?

Po prostu wczytuję się na MSDN w WOW64 . Potrzebuję jednak prostych i zasadniczych odpowiedzi na moje pytania . Chcę dobrać właściwy kompilator . Potrzebuję bardzo popularnego , jak i uniwersalnego środowiska z dużą ilością wtyczek . Zamierzam programować rózne wilkości , to może być 1 MB , ale może to być np 64 GB . Zastosowania przemysłowe .

Poproszę o dialog . Dziekuję za odpowiedzi .

-- Dodane 12.11.2009 (Cz) 11:38 --

moja platforma to Intel Xenon 5300


([alex]) #8

O czym wy tu gadacie?

Na 16 bitowym kompilatorze można było użyć do 1 MB pamięci owszem liczba całkowita mogla adresować tylko 64 kb ale istnieje segmentacja więc użyć można 16*64 kb = 1 mb

Na 32 bitowym kompilatorze liczba całkowita może adresować 4 gb ale z segmentacją 16*4 gb = 64 gb - tyle jest wirtualnej przestrzeni adresowej. Więc teoretycznie tyle można użyć w programie (minus pamięć potrzebna systemowi operacyjnemu). Z tym że przekroczenie pamięci fizycznej jest dosyć kosztowna (w sensie czasu wykonania, system operacyjny będzie "swapować" pamięć przez dysk).

Działa pod Dev-Cpp i zapewniam że Dev-Cpp nie używa 64-bitowego kompilatora:

#include using namespace std;

(Rbator) #9

co to znaczy "swapować" ?

-- Dodane 12.11.2009 (Cz) 12:27 --

jak mam odnieść to co napisałeś do Visual Studio 2008 , Visual C++ ?


([alex]) #10

Powinno się skompilować i uruchomić.


(Rbator) #11

jak odnieść sie do architektury Intel 64 z poziomu Microsoft Visual Studio 2008 . Pisza że powyżej 4 Gb mam do czynienia z virtualna i fizyczną . Czy to miałes na mysli mówiąc o "swapowaniu ?" . Program wtedy robi plik wymiany na dysku ?

-- Dodane 12.11.2009 (Cz) 18:29 --

czy Microsoft Visual Studio 2008 , Visual C++ jest kompilatorem 64 bitowym , który umożliwia zaadresowanie pamięci powyżej 4 GB fizycznie ?


([alex]) #12

Czy ty rozumiesz co do ciebie się mówi? Nie potrzebujesz 64 bitowego kompilatora aby zaadresować powyżej 4GB pamięci.

Fizycznie nie zrobisz tego na żadnym kompilatorze, bo zawsze przydziela się wirtualna.


(Aiatvideo) #13

Człowieku, a co masz, w czym wybierać? Napisz do oficjalnego supportu, dowiesz sie napewno


(Grzech U007) #14

Czy autorowi czasami nie chodzi o to czy Visual Studio wykorzysta w pełni moc komputera do skompilowania programu?


(Rbator) #15

Co oznacza w MS Visual Studio 2008 pojęcie pamięci wirtualnej , od strony użytkownika . To znaczy że aplikacja stworzy mi jakiś plik wymiany na dysku ?

Pozdrawiam i bez nerwów .

-- Dodane 12.11.2009 (Cz) 23:30 --

tak oczywiście ważna jest dla mnie też optymalizacja kompilacji .

-- Dodane 12.11.2009 (Cz) 23:34 --

czy ktos z Was pracował już 64 bitowo i uzywał pamięci ponad 4 GB ?

jakie aplikacje wykonywaliście do tej pory ?


(Marcin 110) #16

Spróbuj opcji linkera /LARGEADDRESSAWARE, ale na 64 bitowych systemach Windows powinna być ustawiona domyślnie.

http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx

Co do ostatniego, to zapytaj w CERNie - zdaje się, że przeprowadzali także komputerowe symulacje wielkiego wybuchu, więc może potrzebowali więcej niż 4GB pamięci :stuck_out_tongue:


(Rbator) #17

Dziękuje za linki . Miło , że od wielbiciela Queen .

Czy VS 2008 wykorzystuje technologię Intel 64 , http://www.intel.com/technology/intel64/index.htm ?

Żart dobry . Znasz ludzi którzy robią coś powyżej 4 GB w VS 2008 , Visual C++ ? mogą być firmy , instytucje etc .

Pozdrawiam


(Fiołek) #18

Aplikacje z taką ilością wykorzystywanej pamięci są bardzo rzadkie i raczej nie wykorzystywane przez normalnych użytkowników. A firmy raczej nie zdradzają ile jego maszyny mają pamięci i ile RAM-u zużywają aplikacje...

spróbuj sam coś takiego zasymulować. Np. przez bardzo mocno obciążony serwer WWW z multum zbędnych bajerów i zdeoptymalizowaną(^^) aplikacja. Chociaż też nie wiem czy to tyle pamięci będzie potrzebować :wink:

Intel64 to Intelowska implementacja x86_64 więc każdy program skompilowany pod x64 i uruchomiony na procesorze x64 Intela ją wykorzystuje...


([alex]) #19

Zanim autor tematu nauczy się programować na tyle by robić takie programy to kompilatory 32-bitowe odejdą w zapomnienie tak jak teraz już prawie odeszli w zapomnienie 16-bitowe. Jeżeli jednak wydaję mu się że potrzebuje aż tyle pamięci oznacza to że prawie na 100% wybrał nieodpowiedni algorytm.

Zawsze można do wbicia gwoździa użyć długopis zamiast młotka, ale zajmie to znacznie więcej czasu i będzie znacznie trudniejsze.


(Rbator) #20

Co do pierwszego twierdzenia kolegi [alex] to prawda , racja , dziś mamy do czynienia z bardzo szybkim starzeniem się oprogramowania , elektroniki .

Dlategoteż wybiegam naprzód do technologii 64 bitowej i wykorzystania wiekszej ilości pamięci niz 4 GB . to tez mogą być projekty grupowe ( Team Systems Visual Studio 2008 ) , takie sa wersje środowiska .