|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6508
|
[C] malloc enorme
Ciao,
avrei due domande sulla malloc. 1)Supponiamo che ho 2 gb di RAM sulla mia macchina. Cosa succede se faccio una malloc di più di 2 gb? L'applicazione schianta o comunque alloca fino a che può? 2) Caso di prima, quindi 2gb di RAM, ma solo 500 mb liberi. Se alloco più di 500 mb che succede? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
1) No. Non perche' hai 2 G di RAM, ma perche', normalmente, Windows non mette a disposizione di un processo utente piu' di 2 G di spazio di indirizzamento virtuale.
2) La memoria potrebbe essere allocata in quanto il sistema pagina su disco. |
|
|
|
|
|
#3 | ||
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Quote:
Nel caso di immagini RAW non è difficile superare i 500MB. |
||
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6508
|
E sotto Linux?
|
|
|
|
|
|
#5 | ||
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Nel caso di linux, inoltre, la malloc è limitata a una certa quantità (anche su macchine a 64 bit), non ricordo quale esattamente; per allocazioni enormi tipo la tua, è consigliabile una mmap anonima (v. man mmap). Meglio ancora se effettuata con huge pages (v. google per hugetlbfs). Infine, lo spazio di indirizzi su una macchina a 32 bit per processo è di 3GB, ma non so se riesci a trovare un buco di 2GB di indirizzi per la tua mmap (v. /proc/self/maps per informazioni sul tipico layout degli indirizzi di un processo). Quote:
In sintesi, se hai bisogno di tutti quegli indirizzi, hai bisogno di una macchina a 64 bit.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
E' una scelta dettata dalle prestazioni; c'era in giro fino a qualche tempo fa una patch per avere uno spazio separato 4GB/4GB per il kernel e le applicazioni, ma aveva un certo impatto computazionale. Stava nel ramo -mm, non so se c'è ancora.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:02.



















