View Full Version : come mai i programmi di oggi sprecano spazio.
angel110
27-02-2007, 18:15
Salve a tutti.. ancora non riesco a capire pienamente come mai.. quasi tutti i programmi di oggi sprecano spazio sull'hard disk..
Per esempio l'altro giorno ho installato una stupidissima utility per ricavare l'indirizzo mac della scheda di rete
ebbene l'utility era di circa 200KB e l'uninstaller di 600KB...
ora dico.. quest'uninstaller... è assurdo, lo pensate pure voi?
In teoria non basterebbe anche solo un 1 kbyte?
franksisca
27-02-2007, 19:21
secondo me, i motivi sono principalmente 2:
1) incompetenze(almeno per quel che concerne l'ottimizzazione delle risorse) dei programmatori
2) Uso di interfaccie grafiche troppo pesanti.
IMHO questi sono i due motivi dell'appesantimento dei sistemi, e se pensi al passaggio da XP a VISTA vedi che le cose dovrebbero tornare.....
Concordo,anche secondo me è per l'utilizzo di grafica troppo pesante,magari mettono direttamente bmp:D :D .
Magari anche il codice non ottimizzato puo' influire...ma secondo me quello è relativo...saranno questioni di qualche KB (5-6) su un file da 1MB..
la questione è spesso un altra.
o meglio altre.
magari per l'uninstaller, invece di farlo a mano in 10kb hanno preferito prendere un uninstalle strandard x windows. Questo(in qualsiasi maniera vien creato), è standard è prevederà 1000 funzioni e magari nel loro caso ne usano 2. Pero usare questo installer gli costa 30 minuti, programmarselo molto di più(ad esempio se non lo si è mai fatto).
In genere oggigiorno la dimensione e la non ottimizzazione dipende dalla grandezza e la complessità dei programmi. Non solo per esigenze tecniche, ma sopratutto per esigenze di tempo. Piu un progetto è grosso più è dispendioso stare dietro bene a tutte le sue parti.
Di sicuro ci hanno infilato delle immagini per abbellire il tutto, e con le immagini fai presto a fare 200KB...
Fa un po' sorridere questa idea che i programmatori moderni scrivano le stesse cose che si scrivevano cinquant'anni fa e poi, in preda ad un delirio, aggiungano palate di megabyte di corbellerie per il mero gusto di occupare un po' di spazio in più! :D
Se una volta il programma occupava 4 byte e oggi ne occupa 20.000 significa che il programma di oggi fa 19.996 byte di cose in più che una volta si sognavano e basta. Grafica inclusa.
franksisca
27-02-2007, 23:09
Fa un po' sorridere questa idea che i programmatori moderni scrivano le stesse cose che si scrivevano cinquant'anni fa e poi, in preda ad un delirio, aggiungano palate di megabyte di corbellerie per il mero gusto di occupare un po' di spazio in più! :D
Se una volta il programma occupava 4 byte e oggi ne occupa 20.000 significa che il programma di oggi fa 19.996 byte di cose in più che una volta si sognavano e basta. Grafica inclusa.
infatti, ma anche il non pensare ad ottimizzare un codice conta molto, l'ho visto su un programma fatto da me, alla mia prima implementazione, occupavo 20Mb, alla seconda, ottimizzando le liste e facendo più controlli e meno cicli(era possibile naturalmente) ho ridotto a 17Mb, solo 3 mega in meno, ma considerate che 12 Mb erano di immagini:D:D:D:D:D
jappilas
27-02-2007, 23:45
ora dico.. quest'uninstaller... è assurdo, lo pensate pure voi?in questo contesto la vera cosa "assurda" è che si sia optato per pacchettizzare il programma usando un installer (con relativo uninstaller ) di terze parti quando esiste il Windows Installer fornito da MS con il sistema, a maggior ragione viste le dimensioni relative dell' applicazione e del remover...
angel110
28-02-2007, 07:51
in questo contesto la vera cosa "assurda" è che si sia optato per pacchettizzare il programma usando un installer (con relativo uninstaller ) di terze parti quando esiste il Windows Installer fornito da MS con il sistema, a maggior ragione viste le dimensioni relative dell' applicazione e del remover...
Infatti e poi secondo me è sopratutto colpa di ha scritto l'uninstaller standardizzato, essendo una grande azienda.. poteva cercare di fare un lavoro più pulito sapendo che lo useranno un esercito di programmatori!
yorkeiser
28-02-2007, 11:00
Il problema, che condivido in pieno, è dovuto al fatto che i programmi un tempo venivano sviluppati a basso livello (tornando ABBASTANZA in dietro, direttamente in assembly). In quel caso, ciò che scrivi è ciò che poi viene compilato e quindi hai un controllo diretto sulla dimensione dell'eseguibile. Oggi si usano liguaggi di livello più alto, che introducono un overhead dovuto all'inclusione di funzioni e strutture che magari non verranno mai utilizzate. Quando si scrive un compilatore, non si possono prevedere TUTTI i casi particolari, perciò si scrive qualcosa che possa "encodare" in linguaggio macchina qualcosa di sensato e che possa coprire un range adeguato di casi.
Più che incompetenza dei programmatori, credo semplicemente che oggi si faccia meno attenzione al risparmio di spazio. Ad esempio, se rilascio un sorgente in c, magari oggi non mi sbatto più (come si faceva una volta) a controllare se i miei include siano effettivamente tutti necessari, ed il mio codice assolutamente ottimizzato; a volte non ti sbatti neanche a compilare con i flag dell'ottimizzazione dello spazio, che tra l'altro può ripercuotersi negativamente sulle prestazioni (in termini di velocità) del programma. Che senso ha risparmiare 100k quando ormai ti buttan dietro 80Gb di hard disk? Anche se, essendo "vecchio", devo ammettere che questo modo di ragionare mi infastidisce un attimino; l'ottimizzazione (sia in termini di prestazioni che in termini di spazio) un tempo era una vera arte.
L'installer di cui parli, che starebbe tranquillamente in meno di 1k di eseguibile, è un esempio di tutto ciò: probabilmente è un installer standard, che dovrà essere utilizzato da un milione di applicazioni diverse e pertanto dovrà includere molte funzionalità (ad esempio, oltre alle normali operazioni di scrittura/cancellazione sul file system, ci può essere la gestione dei file di registro, di eventuali protezioni e altre anta operazioni).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.