Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-01-2014, 19:20   #21
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Quote:
Originariamente inviato da bancodeipugni Guarda i messaggi
in effetti malloc() come open() e fopen() andrebbe sempre controllata a scanso di cantonate oltre che castata (castata, non castrata )
Onestamente controllare malloc() e' al limite della paranoia...

-sia iOS che Android hanno una gestione estremamente aggressiva della memoria e il malloc che fa traboccare il vaso non ritorna e causa la terminazione del programma.
Il programma puo' anche essere terminato a necessita' dall'OS molto prima che succeda, e in realta' quello che succede e' quasi sempre questo.

-su windows da XP in poi non e' possibile ottenere null a meno di non superare la dimensione massima dell'allocazione, tutto il resto va in paging... ok, a un certo punto crasha, ma parliamo di cosi' tanta memoria allocata e usata tutta assieme che non sara' certo un if a salvare il programma (e il sistema operativo)

-su Mac idem

-su Linux idem e l'if e' anche inutile di fronte a quel bug

-su console la dimensione e' costante e se finisci la memoria hai fatto tu male i conti e non dovrebbe mai accadere, wrappare malloc in una macro che asserta il puntatore e' piu' che sufficiente, quando proprio non c'e' un malloc custom

In sostanza ha senso controllare in alcuni ambiti estremamente ristretti tipo embedded, ma nel caso generale non ha veramente senso sporcare il codice tentando di salvare una situazione che in ogni caso e' compromessa e puo' solo essere il risultato di un bug parecchio brutto.
__________________
*ToMmO*

devlog | twitter

Ultima modifica di Tommo : 25-01-2014 alle 19:26.
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2014, 19:51   #22
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12861
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
Stavo facendo qualche prova per vedere il comportamento e le soglie sul mio sistema:

Assolutamente strano!
Facendo un paio di conti a braccio, ho circa 7.5GB di memoria disponibile in userspace, allocando 10 MB alla volta mi aspettavo di terminare la memoria in 750 chiamate a malloc, senza considerare l'overcommit.
Con quest'ultimo, essendo la ratio a 50, dovrebbe terminare a total_memory+total_memory*0.5+swap_space = 7.5+3.7+0 = 11GB circa, quindi circa 1100 chiamate.
Stranamente, cambiando SIZE il risultato è sempre 65515.
E tanto per togliermi i dubbi sulla page size, 65515 * 4k fa tipo 256MB, non diversi GB.

Qualcuno mi dice dove sbaglio a fare i conti?
O del perchè il programma non sembra mostare il comportamento dichiarato nelle pagine di manuale di malloc?
Penso sia dovuto ad una strategia opportunistica nella scrittura delle pagine di memoria (una sorta di copy-on-write).

Cioè una pagina viene effettivamente consumata se tu ci scrivi dentro qualcosa, e nel tuo codice questo non avviene mai.

Probabilmente quando tu fai una malloc il sistema è abbastanza intelligente da non consumare memoria fin tanto che tu non ci scrivi dentro.

Fai una prova a scriverci qualcosa dentro (anche un solo carattere), vedi se cambia qualcosa.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2014, 23:21   #23
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
Penso sia dovuto ad una strategia opportunistica nella scrittura delle pagine di memoria (una sorta di copy-on-write).

Cioè una pagina viene effettivamente consumata se tu ci scrivi dentro qualcosa, e nel tuo codice questo non avviene mai.

Probabilmente quando tu fai una malloc il sistema è abbastanza intelligente da non consumare memoria fin tanto che tu non ci scrivi dentro.

Fai una prova a scriverci qualcosa dentro (anche un solo carattere), vedi se cambia qualcosa.
Il cow me l'ero proprio dimenticato, ho fatto il test che ti dà perfettamente ragione:
Quote:
Allocation [1] 899 killed ./test
Quote:
Originariamente inviato da Antonio23
su tutte le codebase in ambito industriale in cui ho lavorato ho sempre visto il void* castato esplicitamente al tipo di destinazione, per la suddetta ragione. Se non casti, il codice non passa la code review, quindi non sono semplicemente gusti.
Programmo in C per diletto, quindi non so nulla di code review e di ambito industriale.
Chiarisco che ho detto che il cast "aggiunge codice" (e da qui a mio parere la diminuzione di leggibilità) "inutile" visto che è prevista dal linguaggio la promozione del tipo void* in qualsiasi altro tipo (il cast è implicito).
Quindi chiedo, come mai in questi ambiti ci sono tali richieste?
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2014, 12:08   #24
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
perché non sei il solo a lavorare, a debuggare e mantenere parti di codice, e tutto quello che può aumentarne la leggibilità a la manutenibilità è fondamentale. in un altro post qui ho letto una cosa del tipo "l'importante è che funzioni"... quando hai a che fare con progetti veri il fatto che qualcosa funzioni è dato per scontato, l'importante è avere codice che sia facilmente manutenibile indipendente da chi ci sta lavorando sopra...
E su questo siamo d'accordo, il problema qua sembra essere la definizione di "leggibile"
Fammi capire, ci deve essere qualcuno che stabilisca alcuni standard tra tutti i programmatori, no?
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2014, 12:35   #25
mone.java
Senior Member
 
L'Avatar di mone.java
 
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
E su questo siamo d'accordo, il problema qua sembra essere la definizione di "leggibile"
Fammi capire, ci deve essere qualcuno che stabilisca alcuni standard tra tutti i programmatori, no?
penso che tra almeno quelli di un azienda si. Se io fossi un team leader imporrei un certo stile di programmazione per tutti (ovviamente discusso con il team stesso).. Come la nomenclatura delle variabli/funzioni/classi (nel caso il linguaggio abbia le classi)...
Purtroppo non sono ancora un team leader
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza"
mone.java è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2014, 12:37   #26
mone.java
Senior Member
 
L'Avatar di mone.java
 
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
ho letto una cosa del tipo "l'importante è che funzioni"...
I soggetti di questo tipo li chiuderei in galera e getterei la chiave onde evitare che inquinino il mondo con il codice.
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza"
mone.java è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
La missione con equipaggio Shenzhou-21 h...
Il Galaxy S26 Edge potrebbe essere ancor...
Google riaccenderà una centrale n...
Crollo per Pornhub nel Regno Unito:-77% ...
La Germania accende il suo cannone laser...
Il meglio di Amazon in 2 minuti: tira ar...
ECOVACS risponde a Eureka e dimezza il p...
Durissimo colpo per Nintendo: l'ufficio ...
Scope elettriche al minimo storico su Am...
Blue Jay e Project Eluna: robotica e AI ...
Scede a 949€ il Samsung Galaxy S25 Ultra...
Blue Yeti Nano in super offerta su Amazo...
Netflix sta preparando un'offerta per Wa...
Prezzo impossibile, è sceso ancor...
Torna il migliore dei mini PC economici:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:01.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v